|
What this is
Other links
The source code/* * Sun Public License Notice * * The contents of this file are subject to the Sun Public License * Version 1.0 (the "License"). You may not use this file except in * compliance with the License. A copy of the License is available at * http://www.sun.com/ * * The Original Code is NetBeans. The Initial Developer of the Original * Code is Sun Microsystems, Inc. Portions Copyright 1997-2001 Sun * Microsystems, Inc. All Rights Reserved. */ /* * ConfigBeanPanelView.java * * Created on March 6, 2003, 2:13 PM */ package org.netbeans.modules.j2ee.deployment.config.ui; import java.awt.Component; import java.awt.CardLayout; import java.util.HashMap; import java.util.Map; import javax.swing.JPanel; import java.beans.Customizer; import com.sun.tools.j2ee.editor.PanelView; import org.openide.nodes.Node; import org.openide.nodes.Children; import org.openide.explorer.propertysheet.PropertySheetView; /** * * @author Jeri Lockhart */ public class ConfigBeanPanelView extends PanelView { private CardLayout deck = new CardLayout(); private Map map = new HashMap(); private JPanel blankPanel = new JPanel(); private static String BLANK_PANEL = "ConfigBeanPanelView_blank_panel"; /** Creates a new instance of ConfigBeanPanelView */ public ConfigBeanPanelView(Node root) { setRoot(root); initComponents(); } protected void initComponents() { setLayout(deck); setPopupAllowed(true); blankPanel.setName(BLANK_PANEL); add(BLANK_PANEL, blankPanel); } /** Called when explorer manager has changed the current selection. * The view should display the panel corresponding to the selected nodes * * @param nodes the nodes used to update the view * */ public void showSelection(Node[] nodes) { // Sanity check if (nodes == null || nodes.length==0) return; // lookup panel to show Node selNode = (Node) nodes[0]; Component nodePanel = getPanel(selNode); if (nodePanel != null) { if (nodePanel == blankPanel) { deck.show(this,BLANK_PANEL); } else { deck.show(this,String.valueOf(nodePanel.hashCode())); } } } public Component getPanel(Node selNode){ // Lookup panel from node Component panel = null; ConfigBeanNode node = null; if (selNode instanceof ConfigBeanNode) { node = (ConfigBeanNode) selNode; } else { return blankPanel; // Show blank panel } panel = (Component)map.get(selNode); // found a panel, return it if (panel!=null) { if(panel instanceof Customizer) ((Customizer)panel).setObject(node.getBean()); return panel; } // no current panel, use the nodes customizer instead and cache it // after milestone 2, this should change to reuse the same panel instead of 1 customizer per method // panel = node.getCustomizer(); if (panel!=null) { // add nodeListener so we can clean up when the node goes away // map.put(node,panel); add(String.valueOf(panel.hashCode()),panel); // node.addNodeListener(this); ((Customizer)panel).setObject(node.getBean()); return panel; } else { PropertySheetView propSheetView = new PropertySheetView(); propSheetView.setNodes(new Node[] {node}); map.put(node, propSheetView); propSheetView.setName(node.getDisplayName()); add(String.valueOf(propSheetView.hashCode()), propSheetView); return propSheetView; } } } |
... this post is sponsored by my books ... | |
#1 New Release! |
FP Best Seller |
Copyright 1998-2024 Alvin Alexander, alvinalexander.com
All Rights Reserved.
A percentage of advertising revenue from
pages under the /java/jwarehouse
URI on this website is
paid back to open source projects.