1 19 20 package org.netbeans.modules.xml.multiview.ui; 21 22 import java.awt.event.MouseEvent ; 23 import java.beans.*; 24 import javax.swing.JPopupMenu ; 25 26 import org.openide.awt.MouseUtils; 27 import org.openide.explorer.ExplorerManager; 28 import org.openide.windows.TopComponent; 29 import org.openide.nodes.Node; 30 import org.openide.util.WeakListeners; 31 32 41 public abstract class PanelView extends javax.swing.JPanel { 42 43 private Node root; 44 45 transient boolean sectionHeaderClicked; 46 transient PopupAdapter popupListener; 47 48 50 51 transient private ExplorerManager manager; 52 53 transient PropertyChangeListener wlpc; 54 55 transient VetoableChangeListener wlvc; 56 57 transient ErrorPanel errorPanel; 58 59 public PanelView() { 60 initComponents(); 61 } 62 63 public void initComponents () { 64 } 65 66 void attachErrorPanel(ErrorPanel errorPanel) { 67 this.errorPanel=errorPanel; 68 } 69 70 public ErrorPanel getErrorPanel() { 71 return errorPanel; 72 } 73 74 protected abstract org.netbeans.modules.xml.multiview.Error validateView(); 75 76 public final void checkValidity() { 77 org.netbeans.modules.xml.multiview.Error error = validateView(); 78 if (error!=null) { 79 errorPanel.setError(error); 80 } else { 81 errorPanel.clearError(); 82 } 83 } 84 85 89 public Node getRoot() { 90 return root; 91 } 92 93 public void setRoot(Node r){ 94 root = r; 95 } 96 97 public void setSectionHeaderClicked(boolean value) { 98 sectionHeaderClicked=value; 99 } 100 101 public boolean isSectionHeaderClicked() { 102 return sectionHeaderClicked; 103 } 104 105 109 public void setPopupAllowed(boolean value) { 110 if (popupListener == null && value) { 111 popupListener = new PopupAdapter(); 113 addMouseListener(popupListener); 114 return; 115 } 116 if (popupListener != null && !value) { 117 removeMouseListener(popupListener); 119 popupListener = null; 120 return; 121 } 122 } 123 124 126 private class PopupAdapter extends MouseUtils.PopupMouseAdapter { 127 128 PopupAdapter() { 129 } 130 131 protected void showPopup(MouseEvent e) { 132 JPopupMenu popup = getRoot().getContextMenu(); 133 popup.show(PanelView.this,e.getX(), e.getY()); 134 135 } 136 137 } 138 139 143 abstract public void showSelection(Node[] nodes) ; 144 145 150 151 public boolean setManagerExploredContextAndSelection(Node value, Node[] nodes) { 152 try{ 153 getExplorerManager().setExploredContextAndSelection(value, nodes); 154 } 155 catch (PropertyVetoException e) { 156 return false; 157 } 158 return true; 159 } 160 164 165 public boolean setManagerSelection(Node[] nodes) { 166 try{ 167 getExplorerManager().setSelectedNodes(nodes); 168 } 169 catch (PropertyVetoException e) { 170 return false; 171 } 172 return true; 173 } 174 180 protected boolean selectionAccept(Node[] nodes) { 181 return true; 182 } 183 184 188 public void open(){ 189 } 190 195 public boolean canClose(){ 196 return true; 197 } 198 199 202 203 public void addNotify() { 204 super.addNotify(); 205 206 224 } 225 226 230 231 public ExplorerManager getExplorerManager() { 232 return ExplorerManager.find(this); 233 } 235 256 } 257 | Popular Tags |