1 19 20 package org.netbeans.beaninfo; 21 22 import java.awt.Component ; 23 import java.awt.Image ; 24 import java.beans.*; 25 26 import org.openide.awt.Actions; 27 import org.openide.explorer.propertysheet.ExPropertyEditor; 28 import org.openide.explorer.propertysheet.PropertyEnv; 29 import org.openide.loaders.DataLoader; 30 import org.openide.util.Exceptions; 31 import org.openide.util.NbBundle; 32 import org.openide.util.actions.SystemAction; 33 import org.openide.util.Utilities; 34 35 36 public class DataLoaderBeanInfo extends SimpleBeanInfo { 37 38 public PropertyDescriptor[] getPropertyDescriptors () { 39 try { 40 PropertyDescriptor representationClass = new PropertyDescriptor ("representationClassName", DataLoader.class, "getRepresentationClassName", null); representationClass.setDisplayName (NbBundle.getBundle (DataLoaderBeanInfo.class).getString ("PROP_representationClass")); 42 representationClass.setShortDescription (NbBundle.getBundle (DataLoaderBeanInfo.class).getString ("HINT_representationClass")); 43 representationClass.setExpert (true); 44 PropertyDescriptor actions = new PropertyDescriptor ("actions", DataLoader.class); actions.setDisplayName (NbBundle.getBundle (DataLoaderBeanInfo.class).getString ("PROP_actions")); 46 actions.setShortDescription (NbBundle.getBundle (DataLoaderBeanInfo.class).getString ("HINT_actions")); 47 actions.setPropertyEditorClass (ActionsEditor.class); 48 actions.setValue ("canEditAsText", Boolean.FALSE); return new PropertyDescriptor[] { actions, representationClass }; 50 } catch (IntrospectionException ie) { 51 Exceptions.printStackTrace(ie); 52 return null; 53 } 54 } 55 56 59 public Image getIcon(int type) { 60 if ((type == java.beans.BeanInfo.ICON_COLOR_16x16) || (type == java.beans.BeanInfo.ICON_MONO_16x16)) 61 return Utilities.loadImage("org/netbeans/core/resources/objectTypes.gif"); else 63 return Utilities.loadImage("org/netbeans/core/resources/objectTypes32.gif"); } 65 66 public static class ActionsEditor extends PropertyEditorSupport 67 implements ExPropertyEditor { 68 69 private PropertyEnv env; 70 71 public boolean supportsCustomEditor () { 72 return true; 73 } 74 75 public Component getCustomEditor () { 76 return new LoaderActionsPanel (this, env); 77 } 78 79 public String getAsText () { 80 SystemAction[] actions = (SystemAction[]) getValue (); 81 if (actions == null) return ""; StringBuffer buf = new StringBuffer (actions.length * 15 + 1); 83 for (int i = 0; i < actions.length; i++) { 84 if (actions[i] == null) continue; 85 if (i > 0) buf.append (", "); buf.append (Actions.cutAmpersand (actions[i].getName ())); 87 } 88 return buf.toString (); 89 } 90 91 public void setAsText (String text) throws IllegalArgumentException { 92 throw new IllegalArgumentException (); 93 } 94 95 public void attachEnv(PropertyEnv env) { 96 this.env = env; 97 } 98 99 } 100 101 } 102
| Popular Tags
|