|
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-2004 Sun
* Microsystems, Inc. All Rights Reserved.
*/
package org.netbeans.modules.form.palette;
import javax.swing.*;
import java.awt.event.*;
import java.lang.ref.WeakReference;
import javax.swing.text.DefaultEditorKit;
import java.beans.*;
import org.openide.util.*;
import org.openide.explorer.*;
import org.openide.explorer.view.BeanTreeView;
import org.openide.*;
import org.openide.nodes.*;
import org.netbeans.modules.form.project.ClassSource;
/**
* This class provides the UI for managing palette conent (adding components
* etc). Shown to the user as "Palette Manager" window.
*
* @author Tomas Pavek
*/
public class PaletteManager extends JPanel implements ExplorerManager.Provider,
Lookup.Provider
{
private static WeakReference dialogRef; // is weak reference necessary?
private ExplorerManager explorerManager;
private Lookup lookup;
// ------------
public static void showPaletteManager() {
java.awt.Dialog dialog = null;
if (dialogRef != null)
dialog = (JDialog) dialogRef.get();
if (dialog == null) {
JButton closeButton = new JButton();
org.openide.awt.Mnemonics.setLocalizedText(
closeButton, PaletteUtils.getBundleString("CTL_Close_Button")); // NOI18N
DialogDescriptor dd = new DialogDescriptor(
new PaletteManager(),
PaletteUtils.getBundleString("CTL_PaletteManager_Title"), // NOI18N
false,
new Object[] { closeButton },
closeButton,
DialogDescriptor.DEFAULT_ALIGN,
null,
null);
dialog = DialogDisplayer.getDefault().createDialog(dd);
dialogRef = new WeakReference(dialog);
}
dialog.setVisible(true);
}
/** Creates new PaletteManager */
public PaletteManager() {
explorerManager = new ExplorerManager();
ActionMap map = getActionMap();
map.put(DefaultEditorKit.copyAction, ExplorerUtils.actionCopy(explorerManager));
map.put(DefaultEditorKit.cutAction, ExplorerUtils.actionCut(explorerManager));
map.put(DefaultEditorKit.pasteAction, ExplorerUtils.actionPaste(explorerManager));
map.put("delete", ExplorerUtils.actionDelete(explorerManager, true)); // NOI18N
lookup = ExplorerUtils.createLookup(explorerManager, map);
explorerManager.setRootContext(PaletteNode.getPaletteNode());
initComponents();
BeanTreeView treeView = new BeanTreeView();
// treeView.getAccessibleContext().setAccessibleName(
// PaletteUtils.getBundleString("???")); // NOI18N
// treeView.getAccessibleContext().setAccessibleDescription(
// PaletteUtils.getBundleString("???")); // NOI18N
treePanel.add(treeView, java.awt.BorderLayout.CENTER);
captionLabel.setLabelFor(treeView);
explorerManager.addPropertyChangeListener(new PropertyChangeListener() {
public void propertyChange(PropertyChangeEvent ev) {
if (ExplorerManager.PROP_SELECTED_NODES.equals(ev.getPropertyName()))
updateInfoLabel(explorerManager.getSelectedNodes());
}
});
}
public void addNotify() {
super.addNotify();
ExplorerUtils.activateActions(explorerManager, true);
}
public void removeNotify() {
ExplorerUtils.activateActions(explorerManager, false);
super.removeNotify();
}
// ExplorerManager.Provider
public ExplorerManager getExplorerManager() {
return explorerManager;
}
// Lookup.Provider from TopComponent
public Lookup getLookup() {
return lookup;
}
// -------
/** This method is called from within the constructor to
* initialize the form.
* WARNING: Do NOT modify this code. The content of this method is
* always regenerated by the Form Editor.
*/
private void initComponents() {//GEN-BEGIN:initComponents
java.awt.GridBagConstraints gridBagConstraints;
captionLabel = new javax.swing.JLabel();
treePanel = new javax.swing.JPanel();
infoLabel = new javax.swing.JLabel();
addJarButton = new javax.swing.JButton();
addLibraryButton = new javax.swing.JButton();
addProjectButton = new javax.swing.JButton();
moveUpButton = new javax.swing.JButton();
moveDownButton = new javax.swing.JButton();
removeButton = new javax.swing.JButton();
newCategoryButton = new javax.swing.JButton();
FormListener formListener = new FormListener();
setLayout(new java.awt.GridBagLayout());
org.openide.awt.Mnemonics.setLocalizedText(captionLabel, PaletteUtils.getBundleString("CTL_Caption"));
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridwidth = 2;
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
gridBagConstraints.insets = new java.awt.Insets(6, 10, 0, 10);
add(captionLabel, gridBagConstraints);
treePanel.setLayout(new java.awt.BorderLayout());
treePanel.setBorder(new javax.swing.border.EtchedBorder());
treePanel.setPreferredSize(new java.awt.Dimension(288, 336));
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 1;
gridBagConstraints.gridheight = 8;
gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
gridBagConstraints.weightx = 1.0;
gridBagConstraints.weighty = 1.0;
gridBagConstraints.insets = new java.awt.Insets(6, 10, 0, 0);
add(treePanel, gridBagConstraints);
infoLabel.setText(" ");
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 9;
gridBagConstraints.gridwidth = 2;
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
gridBagConstraints.insets = new java.awt.Insets(10, 10, 0, 10);
add(infoLabel, gridBagConstraints);
org.openide.awt.Mnemonics.setLocalizedText(addJarButton, PaletteUtils.getBundleString("CTL_AddJAR_Button"));
addJarButton.setToolTipText(PaletteUtils.getBundleString("HINT_AddJAR"));
addJarButton.addActionListener(formListener);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = 1;
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.insets = new java.awt.Insets(6, 12, 0, 10);
add(addJarButton, gridBagConstraints);
org.openide.awt.Mnemonics.setLocalizedText(addLibraryButton, PaletteUtils.getBundleString("CTL_AddLibrary_Button"));
addLibraryButton.setToolTipText(PaletteUtils.getBundleString("HINT_AddLibrary"));
addLibraryButton.addActionListener(formListener);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = 2;
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.insets = new java.awt.Insets(5, 12, 0, 10);
add(addLibraryButton, gridBagConstraints);
org.openide.awt.Mnemonics.setLocalizedText(addProjectButton, PaletteUtils.getBundleString("CTL_AddProject_Button"));
addProjectButton.setToolTipText(PaletteUtils.getBundleString("HINT_AddProject"));
addProjectButton.addActionListener(formListener);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = 3;
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.insets = new java.awt.Insets(5, 12, 0, 10);
add(addProjectButton, gridBagConstraints);
org.openide.awt.Mnemonics.setLocalizedText(moveUpButton, PaletteUtils.getBundleString("CTL_MoveUp_Button"));
moveUpButton.addActionListener(formListener);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = 4;
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.insets = new java.awt.Insets(28, 12, 0, 10);
add(moveUpButton, gridBagConstraints);
org.openide.awt.Mnemonics.setLocalizedText(moveDownButton, PaletteUtils.getBundleString("CTL_MoveDown_Button"));
moveDownButton.addActionListener(formListener);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = 5;
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.insets = new java.awt.Insets(5, 12, 0, 10);
add(moveDownButton, gridBagConstraints);
org.openide.awt.Mnemonics.setLocalizedText(removeButton, PaletteUtils.getBundleString("CTL_Remove_Button"));
removeButton.addActionListener(formListener);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = 6;
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.insets = new java.awt.Insets(5, 12, 0, 10);
add(removeButton, gridBagConstraints);
org.openide.awt.Mnemonics.setLocalizedText(newCategoryButton, PaletteUtils.getBundleString("CTL_NewCategory_Button"));
newCategoryButton.addActionListener(formListener);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = 7;
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.insets = new java.awt.Insets(5, 12, 0, 10);
add(newCategoryButton, gridBagConstraints);
}
// Code for dispatching events from components to event handlers.
private class FormListener implements java.awt.event.ActionListener {
public void actionPerformed(java.awt.event.ActionEvent evt) {
if (evt.getSource() == addJarButton) {
PaletteManager.this.addJarButtonActionPerformed(evt);
}
else if (evt.getSource() == addLibraryButton) {
PaletteManager.this.addLibraryButtonActionPerformed(evt);
}
else if (evt.getSource() == addProjectButton) {
PaletteManager.this.addProjectButtonActionPerformed(evt);
}
else if (evt.getSource() == moveUpButton) {
PaletteManager.this.moveUpButtonActionPerformed(evt);
}
else if (evt.getSource() == moveDownButton) {
PaletteManager.this.moveDownButtonActionPerformed(evt);
}
else if (evt.getSource() == removeButton) {
PaletteManager.this.removeButtonActionPerformed(evt);
}
else if (evt.getSource() == newCategoryButton) {
PaletteManager.this.newCategoryButtonActionPerformed(evt);
}
}
}//GEN-END:initComponents
private void removeButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_removeButtonActionPerformed
Node[] selected = explorerManager.getSelectedNodes();
if (selected.length == 0)
return;
// first user confirmation...
NotifyDescriptor desc = new NotifyDescriptor.Confirmation(
PaletteUtils.getBundleString("MSG_ConfirmPaletteDelete"), // NOI18N
PaletteUtils.getBundleString("CTL_ConfirmDeleteTitle"), // NOI18N
NotifyDescriptor.YES_NO_OPTION);
if (NotifyDescriptor.YES_OPTION.equals(
DialogDisplayer.getDefault().notify(desc)))
{
try {
for (int i=0; i < selected.length; i++)
selected[i].destroy();
}
catch (java.io.IOException e) {
ErrorManager.getDefault().notify(e);
}
}
}//GEN-LAST:event_removeButtonActionPerformed
private void moveDownButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_moveDownButtonActionPerformed
moveNode(false);
}//GEN-LAST:event_moveDownButtonActionPerformed
private void moveUpButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_moveUpButtonActionPerformed
moveNode(true);
}//GEN-LAST:event_moveUpButtonActionPerformed
private void newCategoryButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_newCategoryButtonActionPerformed
try {
PaletteNode.getPaletteNode().createNewCategory();
}
catch (java.io.IOException e) {
ErrorManager.getDefault().notify(e);
}
}//GEN-LAST:event_newCategoryButtonActionPerformed
private void addProjectButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_addProjectButtonActionPerformed
BeanInstaller.installBeans(ClassSource.PROJECT_SOURCE);
}//GEN-LAST:event_addProjectButtonActionPerformed
private void addLibraryButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_addLibraryButtonActionPerformed
BeanInstaller.installBeans(ClassSource.LIBRARY_SOURCE);
}//GEN-LAST:event_addLibraryButtonActionPerformed
private void addJarButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_addJarButtonActionPerformed
BeanInstaller.installBeans(ClassSource.JAR_SOURCE);
}//GEN-LAST:event_addJarButtonActionPerformed
// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.JButton addJarButton;
private javax.swing.JButton addLibraryButton;
private javax.swing.JButton addProjectButton;
private javax.swing.JLabel captionLabel;
private javax.swing.JLabel infoLabel;
private javax.swing.JButton moveDownButton;
private javax.swing.JButton moveUpButton;
private javax.swing.JButton newCategoryButton;
private javax.swing.JButton removeButton;
private javax.swing.JPanel treePanel;
// End of variables declaration//GEN-END:variables
private void moveNode(boolean up) {
final Node[] selected = explorerManager.getSelectedNodes();
if (selected.length != 1)
return;
Node node = selected[0];
Node parent = node.getParentNode();
if (parent == null)
return;
Index indexCookie = (Index) parent.getCookie(Index.class);
if (indexCookie == null)
return;
int index = movePossible(node, parent, up);
if (index != -1) {
if (up)
indexCookie.moveUp(index);
else
indexCookie.moveDown(index);
}
}
private static int movePossible(Node node, Node parentNode, boolean up) {
if (parentNode == null)
return -1;
Node[] nodes = parentNode.getChildren().getNodes();
for (int i=0; i < nodes.length; i++)
if (nodes[i].getName().equals(node.getName()))
return (up && i > 0) || (!up && i+1 < nodes.length) ? i : -1;
return -1;
}
private void updateInfoLabel(org.openide.nodes.Node[] nodes) {
String text = " "; // NOI18N
if (nodes.length == 1) {
PaletteItem item = (PaletteItem) nodes[0].getCookie(PaletteItem.class);
if (item != null)
text = PaletteUtils.getItemComponentDescription(item);
}
infoLabel.setText(text);
}
}
|
| ... 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.