blob: d4e975ac55d08163c0f94202d1ea7d2dc6893390 [file] [log] [blame]
/**************************************************************
*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*
*************************************************************/
/*
* SelectPathVisualPanel.java
*
* Created on February 12, 2003
*/
package org.openoffice.netbeans.modules.office.wizard;
import java.util.Hashtable;
import java.util.Enumeration;
import java.io.File;
import java.io.IOException;
import javax.swing.JFileChooser;
import org.openide.util.NbBundle;
import org.openoffice.idesupport.SVersionRCFile;
import org.openoffice.idesupport.OfficeInstallation;
import org.openoffice.netbeans.modules.office.options.OfficeSettings;
/** A single panel for a wizard - the GUI portion.
*
* @author tomaso
*/
public class SelectPathVisualPanel extends javax.swing.JPanel {
/** The wizard panel descriptor associated with this GUI panel.
* If you need to fire state changes or something similar, you can
* use this handle to do so.
*/
private final SelectPathPanel panel;
/** Create the wizard panel and set up some basic properties. */
public SelectPathVisualPanel(SelectPathPanel panel) {
this.panel = panel;
initComponents();
OfficeInstallation orig = panel.getSelectedPath();
try {
Enumeration enumer = SVersionRCFile.createInstance().getVersions();
while (enumer.hasMoreElements()) {
OfficeInstallation oi = (OfficeInstallation)enumer.nextElement();
installationsComboBox.addItem(oi);
}
}
catch (IOException ioe) {
installationsComboBox.addItem("<empty>");
}
if (orig != null) {
installationsComboBox.setSelectedItem(orig);
installPath.setText(orig.getPath());
}
installationsComboBox.addActionListener(
new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
installationsComboBoxActionPerformed(evt);
}
}
);
// Provide a name in the title bar.
setName(NbBundle.getMessage(SelectPathVisualPanel.class, "TITLE_SelectPathVisualPanel"));
/*
// Optional: provide a special description for this pane.
// You must have turned on WizardDescriptor.WizardPanel_helpDisplayed
// (see descriptor in standard iterator template for an example of this).
try {
putClientProperty("WizardPanel_helpURL", // NOI18N
new URL("nbresloc:/org/openoffice/netbeans/modules/office/wizard/SelectPathVisualHelp.html")); // NOI18N
} catch (MalformedURLException mfue) {
throw new IllegalStateException(mfue.toString());
}
*/
}
private void installationsComboBoxActionPerformed(
java.awt.event.ActionEvent evt) {
OfficeInstallation oi =
(OfficeInstallation)installationsComboBox.getSelectedItem();
installPath.setText(oi.getPath());
panel.setSelectedPath(oi);
}
/** 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;
jLabel1 = new javax.swing.JLabel();
installPath = new javax.swing.JTextField();
jLabel2 = new javax.swing.JLabel();
installationsComboBox = new javax.swing.JComboBox();
jPanel1 = new javax.swing.JPanel();
browseButton = new javax.swing.JButton();
setLayout(new java.awt.GridBagLayout());
setPreferredSize(new java.awt.Dimension(600, 300));
jLabel1.setText("Installations Detected");
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 0;
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
gridBagConstraints.insets = new java.awt.Insets(12, 12, 11, 2);
add(jLabel1, gridBagConstraints);
installPath.setEditable(false);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = 1;
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.weightx = 1.0;
gridBagConstraints.insets = new java.awt.Insets(12, 0, 11, 11);
add(installPath, gridBagConstraints);
jLabel2.setText("Installation Directory");
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 1;
gridBagConstraints.insets = new java.awt.Insets(12, 12, 11, 12);
add(jLabel2, gridBagConstraints);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = 0;
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
gridBagConstraints.insets = new java.awt.Insets(11, 0, 11, 11);
add(installationsComboBox, gridBagConstraints);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridy = 2;
gridBagConstraints.fill = java.awt.GridBagConstraints.VERTICAL;
gridBagConstraints.weighty = 1.0;
add(jPanel1, gridBagConstraints);
browseButton.setText("Browse...");
browseButton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
browseButtonActionPerformed(evt);
}
});
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 2;
gridBagConstraints.gridy = 1;
gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER;
add(browseButton, gridBagConstraints);
}//GEN-END:initComponents
private void browseButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_browseButtonActionPerformed
// Add your handling code here:
File target = null;
JFileChooser chooser = new JFileChooser();
chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
int result = chooser.showDialog(null, null);
if (result == JFileChooser.APPROVE_OPTION) {
target = chooser.getSelectedFile();
String path;
try {
path = target.getCanonicalPath();
}
catch (IOException ioe) {
path = target.getAbsolutePath();
}
OfficeInstallation oi = new OfficeInstallation(path, path);
if (oi.supportsFramework()) {
installPath.setText(path);
panel.setSelectedPath(oi);
}
}
}//GEN-LAST:event_browseButtonActionPerformed
// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.JTextField installPath;
private javax.swing.JButton browseButton;
private javax.swing.JComboBox installationsComboBox;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel1;
private javax.swing.JPanel jPanel1;
// End of variables declaration//GEN-END:variables
}