Package de.FeatureModellingTool.ElementInfoEditor

Source Code of de.FeatureModellingTool.ElementInfoEditor.ElementPropertiesView$FeatureModelPropertyChangeListener

/**
* @file: ElementPropertiesView.java
* @author: tlc
* @date: 2006-11-10
* @version: 1.0.0
*/
package de.FeatureModellingTool.ElementInfoEditor;

import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
import java.util.Iterator;
import java.util.List;

import javax.swing.*;

import research.DrawingEditor;
import de.FeatureModellingTool.FeatureModel.Feature;
import de.FeatureModellingTool.FeatureModel.FeatureModel;
import de.FeatureModellingTool.FeatureModel.FeatureProperties;
import de.FeatureModellingTool.FeatureModel.FeatureRelation;
import de.reuse.Context;
import de.reuse.ContextImplementation;


public class ElementPropertiesView extends JList implements PropertyChangeListener {
   
    protected final ContextImplementation context = new ContextImplementation();
    private FeatureModel featureModel = null;
    protected final FeatureModelPropertyChangeListener featureModelPropertyChangeListener = new FeatureModelPropertyChangeListener();

    protected final DefaultListModel listModel = new DefaultListModel();

    protected class ContextChangeListener implements PropertyChangeListener {
        public void propertyChange(PropertyChangeEvent e) {
            contextChange(e);
        }
    }
   
    protected class FeatureModelPropertyChangeListener implements PropertyChangeListener {
        public void propertyChange(PropertyChangeEvent evt) {
            featureModelPropertyChange(evt);
        }
    }
   
    public ElementPropertiesView() {
        this.setModel(listModel);
        context.addContextChangeListener(new ContextChangeListener());
    }

    public void propertyChange(PropertyChangeEvent e) {
  if (!e.getPropertyName().equals(DrawingEditor.SELECTION_CHANGED))
      return;
  List selections = (List)e.getNewValue();
  showElementProperties(selections);
    }
   
    protected void showElementProperties(List selections) {
  listModel.clear();
  if (selections == null)
      return;
 
  Iterator it = selections.iterator();
  while (it.hasNext()) {
      String id = (String)it.next();
      if (id == null)
    continue;
      Feature feature = featureModel.getFeature(id);
      FeatureRelation relation = featureModel.getFeatureRelation(id);
     
      String info = "";
      if (feature != null) {
    info = feature.getName() + ": " + feature.getDescription();
      } else if (relation != null) {
    info = relation.getName();
      } else {
    info = id;
      }

        listModel.addElement(info);
  }
    }
   
    public Context getContext() {
  return context;
    }

    private void contextChange(PropertyChangeEvent e) {
  String property = e.getPropertyName();
  if (!property.equals(de.FeatureModellingTool.ElementInfoEditor.ConstantDefinition.FEATURE_MODEL))
      return;
 
        if (featureModel != null)
            featureModel.removePropertyChangeListener(featureModelPropertyChangeListener);

        featureModel = (FeatureModel) e.getNewValue();

        if (featureModel != null)
            featureModel.addPropertyChangeListener(featureModelPropertyChangeListener);
    }
   
    private void featureModelPropertyChange(PropertyChangeEvent e) {
  String property = e.getPropertyName();
  if (!property.equals(FeatureProperties.DESCRIPTION))
      return;
        Feature feature = (Feature) e.getSource();
        //--todo: ���༭ijfeature��description�󣬸���propertiesView�е���ʾ
        listModel.clear();
        String info = feature.getName() + ": " + feature.getDescription();
        listModel.addElement(info);
    }
}
TOP

Related Classes of de.FeatureModellingTool.ElementInfoEditor.ElementPropertiesView$FeatureModelPropertyChangeListener

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.