1 28 29 package org.objectweb.util.browser.plugins.fractal.menu; 30 31 import java.util.List ; 32 import java.util.Vector ; 33 34 import org.objectweb.fractal.api.type.InterfaceType; 35 import org.objectweb.fractal.api.type.TypeFactory; 36 import org.objectweb.util.browser.api.MenuItem; 37 import org.objectweb.util.browser.api.MenuItemTreeView; 38 import org.objectweb.util.browser.api.TreeView; 39 import org.objectweb.util.browser.core.api.ContextContainer; 40 import org.objectweb.util.browser.core.common.DynamicTree; 41 import org.objectweb.util.browser.gui.api.DialogAction; 42 import org.objectweb.util.browser.gui.api.DialogBox; 43 import org.objectweb.util.browser.gui.api.TreeProvider; 44 import org.objectweb.util.browser.gui.lib.DefaultDialogBox; 45 import org.objectweb.util.browser.gui.lib.DefaultTreeProvider; 46 import org.objectweb.util.browser.gui.lib.ExtendedTreeChooserBox; 47 import org.objectweb.util.browser.gui.lib.LabelBox; 48 import org.objectweb.util.browser.plugins.fractal.FcBrowser; 49 50 55 public class CreateComponentTypeAction 56 implements MenuItem, 57 DialogAction 58 { 59 65 66 protected LabelBox name_; 67 68 69 protected ExtendedTreeChooserBox extendedTreeChooserBox_; 70 71 72 protected ContextContainer cc_; 73 74 80 86 89 protected void createBox(DialogBox dialogBox, DynamicTree tree) { 90 name_= new LabelBox("Name"); 91 dialogBox.addElementBox(name_); 92 extendedTreeChooserBox_ = new ExtendedTreeChooserBox("Interface Type",tree, dialogBox); 93 dialogBox.addElementBox(extendedTreeChooserBox_); 94 } 95 96 102 public void actionPerformed(MenuItemTreeView e) throws Exception { 103 cc_ = (ContextContainer)e.getSelectedObject(); 104 105 TreeProvider treeProvider = new DefaultTreeProvider(); 106 DynamicTree tree = treeProvider.createDynamicTree(e); 107 108 DialogBox dialog = new DefaultDialogBox("Create a new component type"); 109 createBox(dialog, tree); 110 dialog.setValidateAction(this); 111 dialog.show(); 112 } 113 114 117 public int getStatus(TreeView treeView) { 118 return MenuItem.ENABLED_STATUS; 119 } 120 121 127 130 public void executeAction() throws Exception { 131 TypeFactory typeFactory = FcBrowser.getTypeFactory(FcBrowser.getBootstrapComponent()); 132 String name = name_.getLabel(); 133 List l = new Vector (); 134 Object [] objects = extendedTreeChooserBox_.getObjects(); 135 for (int i=0 ; i < objects.length ; i++) { 136 if (objects[i] != null && objects[i] instanceof InterfaceType) { 137 l.add((InterfaceType)objects[i]); 138 } 139 } 140 cc_.addEntry(name,typeFactory.createFcType((InterfaceType[])l.toArray(new InterfaceType[0]))); 141 } 142 143 } | Popular Tags |