blob: cd2fca8d9d3608c4b15a34269600101bd8b45b08 [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.
*/
package org.netbeans.modules.javafx2.samples;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
import java.util.logging.Logger;
import javax.swing.*;
import org.netbeans.api.java.platform.JavaPlatform;
import org.netbeans.api.java.platform.JavaPlatformManager;
import org.netbeans.api.java.platform.PlatformsCustomizer;
import org.netbeans.modules.javafx2.platform.api.JavaFXPlatformUtils;
import org.netbeans.modules.javafx2.project.api.JavaFXProjectUtils;
import org.openide.WizardDescriptor;
import org.openide.util.*;
/**
* @author Anton Chechel
*/
// TODO mnemonics
public class PanelOptionsVisual extends JPanel {
private static final Logger LOGGER = Logger.getLogger("javafx"); // NOI18N
private PanelConfigureProject panel;
private ComboBoxModel platformsModel;
private ListCellRenderer platformsCellRenderer;
private JavaPlatformChangeListener jpcl;
/** Creates new form PanelOptionsVisual */
PanelOptionsVisual(PanelConfigureProject panel) {
this.panel = panel;
preInitComponents();
initComponents();
postInitComponents();
}
private void preInitComponents() {
platformsModel = JavaFXProjectUtils.createPlatformComboBoxModel();
platformsCellRenderer = JavaFXProjectUtils.createPlatformListCellRenderer();
}
private void postInitComponents() {
// copied from CustomizerLibraries
if (!UIManager.getLookAndFeel().getClass().getName().toUpperCase().contains("AQUA")) { //NOI18N
platformComboBox.putClientProperty("JComboBox.isTableCellEditor", Boolean.TRUE); // NOI18N
}
jpcl = new JavaPlatformChangeListener();
JavaPlatformManager.getDefault().addPropertyChangeListener(WeakListeners.propertyChange(jpcl, JavaPlatformManager.getDefault()));
selectJavaFXEnabledPlatform();
progressLabel.setVisible(false);
progressPanel.setVisible(false);
}
/** 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.
*/
// <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
private void initComponents() {
java.awt.GridBagConstraints gridBagConstraints;
lblPlatform = new javax.swing.JLabel();
platformComboBox = new javax.swing.JComboBox();
btnManagePlatforms = new javax.swing.JButton();
filler1 = new javax.swing.Box.Filler(new java.awt.Dimension(0, 0), new java.awt.Dimension(0, 100), new java.awt.Dimension(0, 0));
progressLabel = new javax.swing.JLabel();
progressPanel = new javax.swing.JPanel();
setLayout(new java.awt.GridBagLayout());
lblPlatform.setLabelFor(platformComboBox);
lblPlatform.setText(org.openide.util.NbBundle.getMessage(PanelOptionsVisual.class, "LBL_Platform_ComboBox")); // NOI18N
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 0;
gridBagConstraints.anchor = java.awt.GridBagConstraints.BASELINE_LEADING;
gridBagConstraints.insets = new java.awt.Insets(5, 0, 5, 12);
add(lblPlatform, gridBagConstraints);
lblPlatform.getAccessibleContext().setAccessibleName(org.openide.util.NbBundle.getMessage(PanelOptionsVisual.class, "ACSN_labelPlatform")); // NOI18N
lblPlatform.getAccessibleContext().setAccessibleDescription(org.openide.util.NbBundle.getMessage(PanelOptionsVisual.class, "ACSD_labelPlatform")); // NOI18N
platformComboBox.setModel(platformsModel);
platformComboBox.setRenderer(platformsCellRenderer);
platformComboBox.addItemListener(new java.awt.event.ItemListener() {
public void itemStateChanged(java.awt.event.ItemEvent evt) {
platformComboBoxItemStateChanged(evt);
}
});
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = 0;
gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
gridBagConstraints.anchor = java.awt.GridBagConstraints.BASELINE_LEADING;
gridBagConstraints.weightx = 0.1;
gridBagConstraints.insets = new java.awt.Insets(5, 0, 5, 0);
add(platformComboBox, gridBagConstraints);
org.openide.awt.Mnemonics.setLocalizedText(btnManagePlatforms, org.openide.util.NbBundle.getMessage(PanelOptionsVisual.class, "LBL_PanelOptions_Manage_Button")); // NOI18N
btnManagePlatforms.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btnManagePlatformsActionPerformed(evt);
}
});
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 2;
gridBagConstraints.gridy = 0;
gridBagConstraints.anchor = java.awt.GridBagConstraints.BASELINE_TRAILING;
gridBagConstraints.insets = new java.awt.Insets(5, 10, 5, 0);
add(btnManagePlatforms, gridBagConstraints);
btnManagePlatforms.getAccessibleContext().setAccessibleName(org.openide.util.NbBundle.getMessage(PanelOptionsVisual.class, "ACSN_buttonManagePlatforms")); // NOI18N
btnManagePlatforms.getAccessibleContext().setAccessibleDescription(org.openide.util.NbBundle.getMessage(PanelOptionsVisual.class, "ACSD_buttonManagePlatforms")); // NOI18N
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 1;
gridBagConstraints.fill = java.awt.GridBagConstraints.VERTICAL;
gridBagConstraints.weighty = 0.1;
add(filler1, gridBagConstraints);
progressLabel.setText(org.openide.util.NbBundle.getMessage(PanelOptionsVisual.class, "LBL_Platform_Progress")); // NOI18N
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 3;
gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER;
gridBagConstraints.anchor = java.awt.GridBagConstraints.LINE_START;
add(progressLabel, gridBagConstraints);
progressLabel.getAccessibleContext().setAccessibleName(org.openide.util.NbBundle.getMessage(PanelOptionsVisual.class, "ACSN_platformProgress")); // NOI18N
progressLabel.getAccessibleContext().setAccessibleDescription(org.openide.util.NbBundle.getMessage(PanelOptionsVisual.class, "ACSD_platformProgress")); // NOI18N
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 4;
gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER;
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.weightx = 0.1;
add(progressPanel, gridBagConstraints);
}// </editor-fold>//GEN-END:initComponents
private void btnManagePlatformsActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnManagePlatformsActionPerformed
PlatformsCustomizer.showCustomizer(getSelectedPlatform());
}//GEN-LAST:event_btnManagePlatformsActionPerformed
private void platformComboBoxItemStateChanged(java.awt.event.ItemEvent evt) {//GEN-FIRST:event_platformComboBoxItemStateChanged
this.panel.fireChangeEvent();
}//GEN-LAST:event_platformComboBoxItemStateChanged
private JavaPlatform getSelectedPlatform() {
Object selectedItem = this.platformComboBox.getSelectedItem();
JavaPlatform platform = (selectedItem == null ? null : JavaFXProjectUtils.getPlatform(selectedItem));
return platform;
}
private void selectJavaFXEnabledPlatform() {
for (int i = 0; i < platformsModel.getSize(); i++) {
JavaPlatform platform = JavaFXProjectUtils.getPlatform(platformsModel.getElementAt(i));
if (JavaFXPlatformUtils.isJavaFXEnabled(platform)) {
platformComboBox.setSelectedIndex(i);
break;
}
}
}
boolean valid(WizardDescriptor wizardDescriptor) {
if (!JavaFXPlatformUtils.isJavaFXEnabled(getSelectedPlatform())) {
wizardDescriptor.putProperty(WizardDescriptor.PROP_ERROR_MESSAGE,
NbBundle.getMessage(PanelOptionsVisual.class, "WARN_PanelOptionsVisual.notFXPlatform")); // NOI18N
return false;
}
return true;
}
void store(WizardDescriptor d) {
String platformName = getSelectedPlatform().getProperties().get(JavaFXPlatformUtils.PLATFORM_ANT_NAME);
d.putProperty(JavaFXProjectUtils.PROP_JAVA_PLATFORM_NAME, platformName);
}
void read(WizardDescriptor d) {
}
// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.JButton btnManagePlatforms;
private javax.swing.Box.Filler filler1;
private javax.swing.JLabel lblPlatform;
private javax.swing.JComboBox platformComboBox;
private javax.swing.JLabel progressLabel;
private javax.swing.JPanel progressPanel;
// End of variables declaration//GEN-END:variables
private class JavaPlatformChangeListener implements PropertyChangeListener {
@Override
public void propertyChange(PropertyChangeEvent evt) {
PanelOptionsVisual.this.panel.fireChangeEvent();
}
}
}