|
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-2003 Sun * Microsystems, Inc. All Rights Reserved. */ package org.netbeans.modules.vcs.advanced; import java.util.*; import java.awt.*; import java.awt.event.*; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import javax.swing.*; import javax.swing.event.*; import javax.swing.border.*; import java.text.*; import org.openide.explorer.*; import org.openide.explorer.propertysheet.*; import org.openide.explorer.propertysheet.editors.EnhancedCustomPropertyEditor; import org.openide.nodes.*; import org.openide.util.*; import org.netbeans.modules.vcscore.util.*; import org.netbeans.modules.vcscore.*; import org.netbeans.modules.vcs.advanced.VcsCustomizer; import org.netbeans.modules.vcs.advanced.variables.*; /** User variables panel. * * @author Martin Entlicher */ //------------------------------------------- public class UserVariablesPanel extends JPanel implements EnhancedCustomPropertyEditor, ExplorerManager.Provider { /** This property is fired when the variable CONFIG_INPUT_DESCRIPTOR is * defined/undefined with a meaningfull value */ public static final String PROP_CONFIG_INPUT_DESCRIPTOR = "configInputDescriptor"; // NOI18N private UserVariablesEditor editor; private ExplorerManager manager = null; private Children.Array varCh = null; private BasicVariableNode basicRoot = null; private AccessoryVariableNode accessoryRoot = null; private Children basicChildren = null; private Children.SortedArray accessoryChildren = null; private Set filteredVariables = new HashSet(); //------------------------------------------- static final long serialVersionUID =-4165869264994159492L; public UserVariablesPanel(UserVariablesEditor editor){ this.editor = editor; initComponents(); getExplorerManager().setRootContext(createNodes()); ExplorerActions actions = new ExplorerActions(); actions.attach(getExplorerManager()); } //------------------------------------------- public void initComponents(){ GridBagLayout gb=new GridBagLayout(); GridBagConstraints c = new GridBagConstraints(); setLayout(gb); //setBorder(new TitledBorder(g("CTL_Variables"))); setBorder (new EmptyBorder (12, 12, 0, 11)); javax.swing.JTextArea descriptionArea = new javax.swing.JTextArea(); descriptionArea.getAccessibleContext().setAccessibleName(g("ACS_LBL_DescAreaVariablesView"));// NOI18N descriptionArea.getAccessibleContext().setAccessibleDescription(g("ACSD_LBL_DescAreaVariablesView"));// NOI18N descriptionArea.setText(g("LBL_ReadOnlyVariablesView"));//, profileDisplayName)); descriptionArea.setEditable(false); descriptionArea.setLineWrap(true); descriptionArea.setWrapStyleWord(true); descriptionArea.setBackground(new javax.swing.JLabel().getBackground()); c.fill = GridBagConstraints.BOTH; c.weightx = 1.0; c.insets = new java.awt.Insets(0, 0, 11, 0); add(descriptionArea, c); c = new GridBagConstraints(); PropertySheetView propertySheetView = new PropertySheetView(); try { propertySheetView.setSortingMode(org.openide.explorer.propertysheet.PropertySheet.UNSORTED); } catch (java.beans.PropertyVetoException exc) { // The change was vetoed } org.openide.awt.SplittedPanel split = new org.openide.awt.SplittedPanel(); split.setSplitType(org.openide.awt.SplittedPanel.HORIZONTAL); //split.add(new VariableTreeView(), org.openide.awt.SplittedPanel.ADD_LEFT); org.openide.explorer.view.BeanTreeView beanTreeView = new org.openide.explorer.view.BeanTreeView(); beanTreeView.getAccessibleContext().setAccessibleName(g("ACS_UserVariablesTreeViewA11yName")); // NOI18N beanTreeView.getAccessibleContext().setAccessibleDescription(g("ACS_UserVariablesTreeViewA11yDesc")); // NOI18N ExplorerPanel explPanel = new ExplorerPanel(); explPanel.add(beanTreeView); manager = explPanel.getExplorerManager(); split.add(explPanel, org.openide.awt.SplittedPanel.ADD_LEFT); split.add(propertySheetView, org.openide.awt.SplittedPanel.ADD_RIGHT); //JSplitPane splitPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, new CommandTreeView(), propertySheetView); c.fill = GridBagConstraints.BOTH; c.weightx = 1.0; c.weighty = 1.0; c.gridy = 1; add(split, c); getAccessibleContext().setAccessibleName(g("ACS_UserVariablesPanelA11yName")); // NOI18N getAccessibleContext().setAccessibleDescription(g("ACS_UserVariablesPanelA11yDesc")); // NOI18N } private static final Comparator getRootVarsComparator() { return new Comparator() { public int compare(Object o1, Object o2) { if (o1.equals(o2)) return 0; if ((o1 instanceof BasicVariableNode) && (o2 instanceof AccessoryVariableNode)) return -1; else return +1; } public boolean equals(Object obj) { return false; } }; } private AbstractNode createNodes() { Children.SortedArray varChSorted = new Children.SortedArray(); varChSorted.setComparator(getRootVarsComparator()); varCh = varChSorted; AbstractNode varRoot = new AbstractNode(varCh); varRoot.setDisplayName(g("CTL_VariablesNodeName")); varRoot.setShortDescription(g("CTL_VariablesNodeDescription")); varRoot.setIconBase("org/netbeans/modules/vcs/advanced/variables/AccessoryVariables"); // NOI18N basicChildren = new Children.SortedArray(); basicRoot = new BasicVariableNode(basicChildren); accessoryChildren = new Children.SortedArray(); accessoryRoot = new AccessoryVariableNode(accessoryChildren); accessoryRoot.setReadOnly(true); varCh.add(new Node[] { basicRoot, accessoryRoot }); Vector variables = (Vector) editor.getValue(); for(Enumeration enum = variables.elements(); enum.hasMoreElements(); ) { VcsConfigVariable var = (VcsConfigVariable) enum.nextElement(); String name = var.getName(); if (var.isBasic()) { basicChildren.add(new BasicVariableNode[] { new BasicVariableNode(var) }); } else { if (name.indexOf(VcsFileSystem.VAR_ENVIRONMENT_PREFIX) == 0 || name.indexOf(VcsFileSystem.VAR_ENVIRONMENT_REMOVE_PREFIX) == 0 || "MODULE".equals(name) || "PASSWORD".equals(name)) { filteredVariables.add(var); continue; } AccessoryVariableNode accessoryNode = new AccessoryVariableNode(var); accessoryNode.setReadOnly(true); accessoryChildren.add(new AccessoryVariableNode[] { accessoryNode }); } } return varRoot; } public org.openide.explorer.ExplorerManager getExplorerManager() { synchronized(this) { if (manager == null) { manager = new ExplorerManager(); } } return manager; } private Vector createVariables() { Vector vars = new Vector(); Node[] nodes = basicChildren.getNodes(); for (int i = 0; i < nodes.length; i++) { BasicVariableNode varNode = (BasicVariableNode) nodes[i]; VcsConfigVariable var = varNode.getVariable(); var.setOrder(i); vars.add(var); } nodes = accessoryChildren.getNodes(); for (int i = 0; i < nodes.length; i++) { AccessoryVariableNode varNode = (AccessoryVariableNode) nodes[i]; VcsConfigVariable var = varNode.getVariable(); vars.add(var); } vars.addAll(filteredVariables); return vars; } public Object getPropertyValue() { return createVariables(); //return editor.getValue (); } //------------------------------------------- private String g(String s) { return NbBundle.getMessage(UserVariablesPanel.class, s); } private String g(String s, Object obj) { return NbBundle.getMessage(UserVariablesPanel.class, s, obj); } } |
... 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.