|
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.java.j2seplatform.platformdefinition; import java.awt.*; import java.awt.event.ActionListener; import java.awt.event.ActionEvent; import java.io.File; import java.util.Collection; import java.util.ArrayList; import java.util.Arrays; import java.util.Iterator; import java.net.URL; import java.net.URI; import java.net.MalformedURLException; import javax.swing.*; import javax.swing.filechooser.FileFilter; import javax.swing.event.ListSelectionListener; import javax.swing.event.ListSelectionEvent; import org.openide.NotifyDescriptor; import org.openide.DialogDescriptor; import org.openide.DialogDisplayer; import org.openide.filesystems.FileUtil; import org.openide.util.NbBundle; import org.netbeans.api.java.classpath.ClassPath; import org.netbeans.spi.java.classpath.support.ClassPathSupport; public class J2SEPlatformCustomizer extends JTabbedPane { private static final int CLASSPATH = 0; private static final int SOURCES = 1; private static final int JAVADOC = 2; private J2SEPlatformImpl platform; public J2SEPlatformCustomizer (J2SEPlatformImpl platform) { this.platform = platform; this.initComponents (); } private void initComponents () { this.getAccessibleContext().setAccessibleName (NbBundle.getMessage(J2SEPlatformCustomizer.class,"AN_J2SEPlatformCustomizer")); this.getAccessibleContext().setAccessibleDescription (NbBundle.getMessage(J2SEPlatformCustomizer.class,"AD_J2SEPlatformCustomizer")); this.addTab(NbBundle.getMessage(J2SEPlatformCustomizer.class,"TXT_Classes"), createPathTab(CLASSPATH)); this.addTab(NbBundle.getMessage(J2SEPlatformCustomizer.class,"TXT_Sources"), createPathTab(SOURCES)); this.addTab(NbBundle.getMessage(J2SEPlatformCustomizer.class,"TXT_Javadoc"), createPathTab(JAVADOC)); } private JComponent createPathTab (int type) { return new PathView (this.platform, type); } private static class PathView extends JPanel { private JList resources; private JButton addButton; // private JButton addURLButton; private JButton removeButton; private JButton moveUpButton; private JButton moveDownButton; private int type; public PathView (J2SEPlatformImpl platform, int type) { this.type = type; this.initComponents (platform); } private void initComponents (J2SEPlatformImpl platform) { this.setLayout(new GridBagLayout()); JLabel label = new JLabel (); String key = null; String mneKey = null; String ad = null; switch (type) { case CLASSPATH: key = "TXT_JDKClasspath"; //NOI18N mneKey = "MNE_JDKClasspath"; //NOI18N ad = "AD_JDKClasspath"; //NOI18N break; case SOURCES: key = "TXT_JDKSources"; //NOI18N mneKey = "MNE_JDKSources"; //NOI18N ad = "AD_JDKSources"; //NOI18N break; case JAVADOC: key = "TXT_JDKJavadoc"; //NOI18N mneKey = "MNE_JDKJavadoc"; //NOI8N ad = "AD_JDKJavadoc"; //NOI8N break; default: assert false : "Illegal type of panel"; //NOI18N return; } label.setText (NbBundle.getMessage(J2SEPlatformCustomizer.class,key)); label.setDisplayedMnemonic(NbBundle.getMessage(J2SEPlatformCustomizer.class,mneKey).charAt(0)); GridBagConstraints c = new GridBagConstraints(); c.gridx = GridBagConstraints.RELATIVE; c.gridy = GridBagConstraints.RELATIVE; c.gridwidth = GridBagConstraints.REMAINDER; c.insets = new Insets (6,12,2,0); c.fill = GridBagConstraints.HORIZONTAL; c.weightx = 1.0; ((GridBagLayout)this.getLayout()).setConstraints(label,c); this.add (label); this.resources = new JList(new PathModel(platform,type)); label.setLabelFor (this.resources); this.resources.getAccessibleContext().setAccessibleDescription(NbBundle.getMessage(J2SEPlatformCustomizer.class,ad)); this.resources.addListSelectionListener(new ListSelectionListener() { public void valueChanged(ListSelectionEvent e) { selectionChanged (); } }); JScrollPane spane = new JScrollPane (this.resources); c = new GridBagConstraints(); c.gridx = GridBagConstraints.RELATIVE; c.gridy = GridBagConstraints.RELATIVE; c.gridwidth = 1; c.gridheight = 5; c.insets = new Insets (0,12,12,6); c.fill = GridBagConstraints.BOTH; c.weightx = 1.0; c.weighty = 1.0; ((GridBagLayout)this.getLayout()).setConstraints(spane,c); this.add (spane); if (type == SOURCES || type == JAVADOC) { this.addButton = new JButton (); String text; char mne; if (type == SOURCES) { text = NbBundle.getMessage(J2SEPlatformCustomizer.class, "CTL_Add"); mne = NbBundle.getMessage(J2SEPlatformCustomizer.class, "MNE_Add").charAt(0); ad = NbBundle.getMessage(J2SEPlatformCustomizer.class, "AD_Add"); } else { text = NbBundle.getMessage(J2SEPlatformCustomizer.class, "CTL_AddZip"); mne = NbBundle.getMessage(J2SEPlatformCustomizer.class, "MNE_AddZip").charAt(0); ad = NbBundle.getMessage(J2SEPlatformCustomizer.class, "AD_AddZip"); } this.addButton.setText(text); this.addButton.setMnemonic(mne); this.addButton.getAccessibleContext().setAccessibleDescription (ad); addButton.addActionListener( new ActionListener () { public void actionPerformed(ActionEvent e) { addPathElement (); } }); c = new GridBagConstraints(); c.gridx = 1; c.gridy = 1; c.gridwidth = GridBagConstraints.REMAINDER; c.fill = GridBagConstraints.HORIZONTAL; c.anchor = GridBagConstraints.NORTHWEST; c.insets = new Insets (3,6,5,12); ((GridBagLayout)this.getLayout()).setConstraints(addButton,c); this.add (addButton); // if (this.type == JAVADOC) { // addURLButton = new JButton (NbBundle.getMessage(J2SEPlatformCustomizer.class, "CTL_AddURL")); // addURLButton.setMnemonic(NbBundle.getMessage(J2SEPlatformCustomizer.class, "MNE_AddURL").charAt(0)); // addURLButton.addActionListener(new ActionListener () { // public void actionPerformed(ActionEvent e) { // addURLElement (); // } // }); // c = new GridBagConstraints(); // c.gridx = 1; // c.gridy = 2; // c.gridwidth = GridBagConstraints.REMAINDER; // c.fill = GridBagConstraints.HORIZONTAL; // c.anchor = GridBagConstraints.NORTHWEST; // c.insets = new Insets (0,6,6,12); // ((GridBagLayout)this.getLayout()).setConstraints(addURLButton,c); // this.add (addURLButton); // } removeButton = new JButton (NbBundle.getMessage(J2SEPlatformCustomizer.class, "CTL_Remove")); removeButton.setMnemonic(NbBundle.getMessage(J2SEPlatformCustomizer.class, "MNE_Remove").charAt(0)); removeButton.getAccessibleContext().setAccessibleDescription (NbBundle.getMessage(J2SEPlatformCustomizer.class,"AD_Remove")); removeButton.addActionListener( new ActionListener () { public void actionPerformed(ActionEvent e) { removePathElement (); } }); removeButton.setEnabled(false); c = new GridBagConstraints(); c.gridx = 1; c.gridy = 3; c.gridwidth = GridBagConstraints.REMAINDER; c.fill = GridBagConstraints.HORIZONTAL; c.anchor = GridBagConstraints.NORTHWEST; c.insets = new Insets (6,6,5,12); ((GridBagLayout)this.getLayout()).setConstraints(removeButton,c); this.add (removeButton); moveUpButton = new JButton (NbBundle.getMessage(J2SEPlatformCustomizer.class, "CTL_Up")); moveUpButton.setMnemonic(NbBundle.getMessage(J2SEPlatformCustomizer.class, "MNE_Up").charAt(0)); moveUpButton.getAccessibleContext().setAccessibleDescription (NbBundle.getMessage(J2SEPlatformCustomizer.class,"AD_Up")); moveUpButton.addActionListener( new ActionListener () { public void actionPerformed(ActionEvent e) { moveUpPathElement (); } }); moveUpButton.setEnabled(false); c = new GridBagConstraints(); c.gridx = 1; c.gridy = 4; c.gridwidth = GridBagConstraints.REMAINDER; c.fill = GridBagConstraints.HORIZONTAL; c.anchor = GridBagConstraints.NORTHWEST; c.insets = new Insets (6,6,6,12); ((GridBagLayout)this.getLayout()).setConstraints(moveUpButton,c); this.add (moveUpButton); moveDownButton = new JButton (NbBundle.getMessage(J2SEPlatformCustomizer.class, "CTL_Down")); moveDownButton.setMnemonic (NbBundle.getMessage(J2SEPlatformCustomizer.class, "MNE_Down").charAt(0)); moveDownButton.getAccessibleContext().setAccessibleDescription(NbBundle.getMessage(J2SEPlatformCustomizer.class,"AD_Down")); moveDownButton.addActionListener( new ActionListener () { public void actionPerformed(ActionEvent e) { moveDownPathElement (); } }); moveDownButton.setEnabled(false); c = new GridBagConstraints(); c.gridx = 1; c.gridy = 5; c.gridwidth = GridBagConstraints.REMAINDER; c.fill = GridBagConstraints.HORIZONTAL; c.anchor = GridBagConstraints.NORTHWEST; c.insets = new Insets (0,6,12,12); ((GridBagLayout)this.getLayout()).setConstraints(moveDownButton,c); this.add (moveDownButton); } } // private void addURLElement() { // JPanel p = new JPanel (); // GridBagLayout lm = new GridBagLayout(); // p.setLayout (lm); // GridBagConstraints c = new GridBagConstraints (); // c.gridx = c.gridy = GridBagConstraints.RELATIVE; // c.insets = new Insets (12,12,12,6); // c.anchor = GridBagConstraints.NORTHWEST; // JLabel label = new JLabel (NbBundle.getMessage(J2SEPlatformCustomizer.class,"CTL_AddJavadocURLMessage")); // label.setDisplayedMnemonic ('U'); // lm.setConstraints(label,c); // p.add (label); // c = new GridBagConstraints (); // c.gridx = c.gridy = GridBagConstraints.RELATIVE; // c.gridwidth = GridBagConstraints.REMAINDER; // c.insets = new Insets (12,0,12,6); // c.fill = GridBagConstraints.HORIZONTAL; // c.anchor = GridBagConstraints.NORTHWEST; // JTextField text = new JTextField (); // text.setColumns(30); // text.setText (NbBundle.getMessage(J2SEPlatformCustomizer.class,"TXT_DefaultProtocol")); // text.selectAll(); // label.setLabelFor(text); // lm.setConstraints(text,c); // p.add (text); // JButton[] options = new JButton[] { // new JButton (NbBundle.getMessage(J2SEPlatformCustomizer.class,"CTL_AddJavadocURLTitle")), // new JButton (NbBundle.getMessage(J2SEPlatformCustomizer.class,"CTL_Cancel")) // }; // options[0].setMnemonic(NbBundle.getMessage(J2SEPlatformCustomizer.class,"MNE_Add").charAt(0)); // options[1].setMnemonic(NbBundle.getMessage(J2SEPlatformCustomizer.class,"MNE_Cancel").charAt(0)); // DialogDescriptor input = new DialogDescriptor ( // p, // NbBundle.getMessage(J2SEPlatformCustomizer.class,"CTL_AddJavadocURLTitle"), // true, options, options[0], DialogDescriptor.DEFAULT_ALIGN, null, null); // if (DialogDisplayer.getDefault().notify(input) == options[0]) { // try { // String value = text.getText(); // URL url = new URL (value); // ((PathModel)this.resources.getModel()).addPath(url); // this.resources.setSelectedIndex (this.resources.getModel().getSize()-1); // } catch (MalformedURLException mue) { // DialogDescriptor.Message message = new DialogDescriptor.Message ( // NbBundle.getMessage(J2SEPlatformCustomizer.class,"CTL_InvalidURLFormat"), // DialogDescriptor.ERROR_MESSAGE); // DialogDisplayer.getDefault().notify(message); // } // } // } private void addPathElement () { JFileChooser chooser = new JFileChooser (); FileUtil.preventFileChooserSymlinkTraversal(chooser, null); chooser.setMultiSelectionEnabled (true); String title = null; String message = null; String approveButtonName = null; String approveButtonNameMne = null; if (this.type == SOURCES) { title = NbBundle.getMessage (J2SEPlatformCustomizer.class,"TXT_OpenSources"); message = NbBundle.getMessage (J2SEPlatformCustomizer.class,"TXT_Sources"); approveButtonName = NbBundle.getMessage (J2SEPlatformCustomizer.class,"TXT_OpenSources"); approveButtonNameMne = NbBundle.getMessage (J2SEPlatformCustomizer.class,"MNE_OpenSources"); } else if (this.type == JAVADOC) { title = NbBundle.getMessage (J2SEPlatformCustomizer.class,"TXT_OpenJavadoc"); message = NbBundle.getMessage (J2SEPlatformCustomizer.class,"TXT_Javadoc"); approveButtonName = NbBundle.getMessage (J2SEPlatformCustomizer.class,"TXT_OpenJavadoc"); approveButtonNameMne = NbBundle.getMessage (J2SEPlatformCustomizer.class,"MNE_OpenJavadoc"); } chooser.setDialogTitle(title); chooser.setApproveButtonText(approveButtonName); chooser.setApproveButtonMnemonic (approveButtonNameMne.charAt(0)); chooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES); chooser.setFileFilter (new SimpleFileFilter(message,new String[] {"ZIP","JAR"})); //NOI18N if (chooser.showOpenDialog(this)==JFileChooser.APPROVE_OPTION) { File f = chooser.getSelectedFile(); PathModel model = (PathModel) this.resources.getModel(); if (!model.addPath (f)) { new NotifyDescriptor.Message (NbBundle.getMessage(J2SEPlatformCustomizer.class,"TXT_CanNotAddResolve"), NotifyDescriptor.ERROR_MESSAGE); } this.resources.setSelectedIndex (this.resources.getModel().getSize()-1); } } private void removePathElement () { int index = this.resources.getSelectedIndex(); if (index == -1) { return; } PathModel model = (PathModel) this.resources.getModel(); model.removePath (index); if ( index< this.resources.getModel().getSize() - 2) { this.resources.setSelectedIndex (index+1); } else if (index>0) { this.resources.setSelectedIndex (index-1); } } private void moveDownPathElement () { int index = this.resources.getSelectedIndex(); if (index == -1) { return; } PathModel model = (PathModel) this.resources.getModel(); model.moveDownPath (index); this.resources.setSelectedIndex (index+1); } private void moveUpPathElement () { int index = this.resources.getSelectedIndex(); if (index == -1) { return; } PathModel model = (PathModel) this.resources.getModel(); model.moveUpPath (index); this.resources.setSelectedIndex (index-1); } private void selectionChanged () { if (this.type == CLASSPATH) { return; } int index = this.resources.getSelectedIndex(); this.removeButton.setEnabled (index != -1); this.moveUpButton.setEnabled (index>0); this.moveDownButton.setEnabled(index>-1 && index |
... this post is sponsored by my books ... | |
#1 New Release! |
FP Best Seller |
Copyright 1998-2021 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.