1 19 20 28 29 package org.netbeans.modules.xml.schema.abe; 30 31 import java.awt.Component ; 32 import java.awt.event.MouseEvent ; 33 import java.util.ArrayList ; 34 import javax.swing.JPopupMenu ; 35 import org.openide.awt.MouseUtils; 36 import org.openide.nodes.Node; 37 import org.openide.nodes.NodeOp; 38 39 43 public class MultiComponentActionManager { 44 InstanceUIContext context; 45 46 public MultiComponentActionManager(InstanceUIContext context) { 47 this.context = context; 48 } 49 50 public void deleteSelectedComponents(){ 51 ArrayList <ABEBaseDropPanel> list = context.getComponentSelectionManager().getSelectedComponentList(); 52 ArrayList <Component > cloneList = (ArrayList <Component >) list.clone(); 53 context.getComponentSelectionManager().clearPreviousSelectedComponents(true); 54 for(Component comp: cloneList){ 55 if(comp instanceof TagPanel){ 57 ((TagPanel) comp).removeElement(); 58 }else if(comp instanceof AttributePanel){ 59 ((AttributePanel)comp).removeAttribute(); 60 }else if(comp instanceof CompositorPanel){ 61 ((CompositorPanel)comp).removeCompositor(); 62 } 63 } 64 } 65 66 public void showPopupMenu(MouseEvent e, ABEBaseDropPanel eventSource) { 67 ArrayList <ABEBaseDropPanel> list = context.getComponentSelectionManager().getSelectedComponentList(); 68 69 if(!list.contains(eventSource)){ 70 context.getComponentSelectionManager(). 73 setSelectedComponent(eventSource); 74 list = context.getComponentSelectionManager().getSelectedComponentList(); 76 } 77 78 ArrayList <Node> nodeList = new ArrayList <Node>(); 79 for(Component component: list){ 80 if(component instanceof ABEBaseDropPanel && 81 ((ABEBaseDropPanel)component).getNBNode() != null){ 82 nodeList.add(((ABEBaseDropPanel)component).getNBNode()); 83 } 84 } 85 if(nodeList.size() > 0){ 86 JPopupMenu menu = NodeOp.findContextMenu(nodeList.toArray(new Node[nodeList.size()])); 90 Component hostComponent = e.getComponent(); 92 menu.show(hostComponent, e.getX(), e.getY()); 93 } 94 } 95 96 } 97 | Popular Tags |