|
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 java.io.*;
import javax.swing.JFileChooser;
import javax.swing.BorderFactory;
import javax.swing.event.*;
import java.beans.*;
import java.util.*;
import java.net.URI;
import org.openide.WizardDescriptor;
import org.openide.ErrorManager;
import org.openide.filesystems.*;
import org.netbeans.api.project.ant.*;
import org.netbeans.api.project.*;
import org.netbeans.spi.project.ui.support.ProjectChooser;
/**
* The first panel in the wizard for adding new components to the palette from
* a project. In this panel the user chooses a project (as project folder
* using the project chooser UI).
*
* @author Tomas Pavek
*/
class ChooseProjectWizardPanel implements WizardDescriptor.Panel {
private JFileChooser projectChooser;
private static String lastDirectoryUsed;
private EventListenerList listenerList;
// ----------
// WizardDescriptor.Panel implementation
public java.awt.Component getComponent() {
if (projectChooser == null) { // create the UI component for the wizard step
projectChooser = ProjectChooser.projectChooser();
projectChooser.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 0));
// wizard API: set the caption and index of this panel
projectChooser.setName(PaletteUtils.getBundleString("CTL_SelectProject_Caption")); // NOI18N
projectChooser.putClientProperty("WizardPanel_contentSelectedIndex", // NOI18N
new Integer(0));
if (lastDirectoryUsed != null)
projectChooser.setCurrentDirectory(new File(lastDirectoryUsed));
projectChooser.setControlButtonsAreShown(false);
projectChooser.addPropertyChangeListener(new PropertyChangeListener() {
public void propertyChange(PropertyChangeEvent ev) {
String propName = ev.getPropertyName();
if (JFileChooser.SELECTED_FILE_CHANGED_PROPERTY.equals(propName)
|| JFileChooser.DIRECTORY_CHANGED_PROPERTY.equals(propName))
fireStateChanged();
}
});
}
return projectChooser;
}
public org.openide.util.HelpCtx getHelp() {
// PENDING
return new org.openide.util.HelpCtx("beans.adding"); // NOI18N
}
public boolean isValid() {
if (projectChooser != null) {
File file = projectChooser.getSelectedFile();
if (file != null) {
file = FileUtil.normalizeFile(file);
FileObject projectDir = FileUtil.toFileObject(file);
try {
Project project = ProjectManager.getDefault()
.findProject(projectDir);
if (project != null) { // it is a project directory
lastDirectoryUsed = projectChooser.getCurrentDirectory()
.getAbsolutePath();
return true;
}
}
catch (IOException ex) {} // ignore
}
}
return false;
}
public void readSettings(Object settings) {
}
public void storeSettings(Object settings) {
if (projectChooser == null)
return;
File file = projectChooser.getSelectedFile();
if (file == null)
return;
file = FileUtil.normalizeFile(file);
Project project = null;
try {
project = ProjectManager.getDefault().findProject(
FileUtil.toFileObject(file));
}
catch (IOException ex) {
ErrorManager.getDefault().notify(ErrorManager.INFORMATIONAL, ex);
}
if (project == null)
return;
List fileList = new ArrayList();
AntArtifact[] artifacts =
AntArtifactQuery.findArtifactsByType(project, "jar"); // NOI18N
for (int i=0; i < artifacts.length; i++) {
URI scriptLocation = artifacts[i].getScriptLocation().toURI();
URI artifactLocation = artifacts[i].getArtifactLocation();
File outputFile = new File(scriptLocation.resolve(artifactLocation).normalize());
fileList.add(outputFile);
}
File[] outputFiles = new File[fileList.size()];
fileList.toArray(outputFiles);
((AddToPaletteWizard)settings).setJARFiles(outputFiles);
}
public void addChangeListener(ChangeListener listener) {
if (listenerList == null)
listenerList = new EventListenerList();
listenerList.add(ChangeListener.class, listener);
}
public void removeChangeListener(ChangeListener listener) {
if (listenerList != null)
listenerList.remove(ChangeListener.class, listener);
}
// -----
void fireStateChanged() {
if (listenerList == null)
return;
ChangeEvent e = null;
Object[] listeners = listenerList.getListenerList();
for (int i=listeners.length-2; i >= 0; i-=2) {
if (listeners[i] == ChangeListener.class) {
if (e == null)
e = new ChangeEvent(this);
((ChangeListener)listeners[i+1]).stateChanged(e);
}
}
}
}
|
| ... 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.