[jboss-cvs] jbosside/core/plugins/org.jboss.ide.eclipse.packages.ui/src/main/org/jboss/ide/eclipse/packages/ui/properties ...

Marshall Culpepper mculpepper at jboss.com
Fri Mar 2 20:28:46 EST 2007


  User: mculpepper
  Date: 07/03/02 20:28:46

  Added:       core/plugins/org.jboss.ide.eclipse.packages.ui/src/main/org/jboss/ide/eclipse/packages/ui/properties 
                        NodeWithProperties.java
  Log:
  node properties now show up in the properties view (we're effectively wrapping each node object, quite painful). the properties action in the node context menu shows the properties view
  
  Revision  Changes    Path
  1.1      date: 2007/03/03 01:28:46;  author: mculpepper;  state: Exp;jbosside/core/plugins/org.jboss.ide.eclipse.packages.ui/src/main/org/jboss/ide/eclipse/packages/ui/properties/NodeWithProperties.java
  
  Index: NodeWithProperties.java
  ===================================================================
  package org.jboss.ide.eclipse.packages.ui.properties;
  
  import java.util.ArrayList;
  import java.util.Iterator;
  import java.util.Properties;
  
  import org.eclipse.core.runtime.IAdaptable;
  import org.eclipse.jface.viewers.CellEditor;
  import org.eclipse.jface.viewers.TextCellEditor;
  import org.eclipse.swt.widgets.Composite;
  import org.eclipse.ui.views.properties.IPropertyDescriptor;
  import org.eclipse.ui.views.properties.IPropertySource;
  import org.eclipse.ui.views.properties.PropertyDescriptor;
  import org.jboss.ide.eclipse.packages.core.model.IPackageNode;
  import org.jboss.ide.eclipse.packages.core.model.internal.PackageNodeImpl;
  
  public class NodeWithProperties implements IAdaptable, IPropertySource {
  
  	private PackageNodeImpl node;
  	
  	public NodeWithProperties (PackageNodeImpl node)
  	{
  		this.node = node;
  	}
  
  	public Object getEditableValue() {
  		return node;
  	}
  	
  	private static class NodePropertyDescriptor extends PropertyDescriptor
  	{
  		public NodePropertyDescriptor (Object id, String displayName)
  		{
  			super(id, displayName);
  		}
  		
  		public CellEditor createPropertyEditor(Composite parent) {
  			CellEditor editor = new TextCellEditor(parent);
  			if (getValidator() != null)
  				editor.setValidator(getValidator());
  			
  			return editor;
  		}
  	}
  
  	public IPropertyDescriptor[] getPropertyDescriptors() {
  		
  		Properties props = node.getProperties();
  		ArrayList descriptors = new ArrayList();
  		
  		for (Iterator iter = props.keySet().iterator(); iter.hasNext(); )
  		{
  			String property = (String) iter.next();
  			
  			descriptors.add(new NodePropertyDescriptor(property, property));
  		}
  		
  		return (IPropertyDescriptor[]) descriptors.toArray(new IPropertyDescriptor[descriptors.size()]);
  	}
  
  	public Object getPropertyValue(Object id) {
  		return node.getProperty((String)id);
  	}
  
  	public boolean isPropertySet(Object id) {
  		return false;
  	}
  
  	public void resetPropertyValue(Object id) {}
  
  	public void setPropertyValue(Object id, Object value) {
  		node.setProperty((String)id, (String)value);
  	}
  
  	public PackageNodeImpl getNode() {
  		return node;
  	}
  	
  	public boolean equals(Object obj) {
  		if (obj instanceof IPackageNode)
  		{
  			return node.equals(obj);
  		}
  		else return super.equals(obj);
  	}
  	
  	public Object getAdapter(Class adapter) {
  		if (adapter == IPropertySource.class)
  		{
  			return this;
  		}
  		return null;
  	}
  }
  
  
  



More information about the jboss-cvs-commits mailing list