package org.mycompany.wizard.panels;
import java.awt.GridBagConstraints;
import java.awt.Insets;
import org.netbeans.installer.utils.ResourceUtils;
import org.netbeans.installer.utils.StringUtils;
import org.netbeans.installer.utils.SystemUtils;
import org.netbeans.installer.utils.helper.swing.NbiCheckBox;
import org.netbeans.installer.wizard.components.panels.DestinationPanel;
import org.netbeans.installer.wizard.containers.SwingContainer;
import org.netbeans.installer.wizard.ui.SwingUi;
import org.netbeans.installer.wizard.ui.WizardUi;
/**
*
* @author Dmitry Lipin
*/
public class HelloWorldPanel extends DestinationPanel {
public HelloWorldPanel() {
setProperty(TITLE_PROPERTY,
DEFAULT_TITLE);
setProperty(DESCRIPTION_PROPERTY,
DEFAULT_DESCRIPTION);
setProperty(DESTINATION_LABEL_TEXT_PROPERTY,
DEFAULT_DESTINATION_LABEL_TEXT);
setProperty(DESTINATION_BUTTON_TEXT_PROPERTY,
DEFAULT_DESTINATION_BUTTON_TEXT);
}
@Override
public WizardUi getWizardUi() {
if (wizardUi == null) {
wizardUi = new HelloWorldPanelUi(this);
}
return wizardUi;
}
@Override
public void initialize() {
super.initialize();
if(getWizard().getProperty(CREATE_DESKTOP_SHORTCUT_PROPERTY) == null) {
getWizard().setProperty(CREATE_DESKTOP_SHORTCUT_PROPERTY, "" + true);
}
if(getWizard().getProperty(CREATE_START_MENU_SHORTCUT_PROPERTY) == null) {
getWizard().setProperty(CREATE_START_MENU_SHORTCUT_PROPERTY, "" + true);
}
}
public static class HelloWorldPanelUi extends DestinationPanelUi {
protected HelloWorldPanel panel;
public HelloWorldPanelUi(HelloWorldPanel panel) {
super(panel);
this.panel = panel;
}
public SwingUi getSwingUi(SwingContainer container) {
if (swingUi == null) {
swingUi = new HelloWorldPanelSwingUi(panel, container);
}
return super.getSwingUi(container);
}
}
public static class HelloWorldPanelSwingUi extends DestinationPanelSwingUi {
protected HelloWorldPanel panel;
private NbiCheckBox desktopShortcutComboBox;
private NbiCheckBox startMenuShortcutComboBox;
public HelloWorldPanelSwingUi(
final HelloWorldPanel panel,
final SwingContainer container) {
super(panel, container);
this.panel = panel;
initComponents();
}
// protected ////////////////////////////////////////////////////////////////
@Override
protected void initialize() {
desktopShortcutComboBox.setText(CREATE_DESKTOP_SHORTCUT_NAME);
desktopShortcutComboBox.setSelected(false);
if(Boolean.parseBoolean(panel.getWizard().getProperty(CREATE_DESKTOP_SHORTCUT_PROPERTY))) {
desktopShortcutComboBox.doClick();
}
startMenuShortcutComboBox.setText(
SystemUtils.isWindows() ? CREATE_START_MENU_SHORTCUT_NAME_WINDOWS :
(SystemUtils.isMacOS() ? CREATE_START_MENU_SHORTCUT_NAME_MAC :
CREATE_START_MENU_SHORTCUT_NAME_UNIX));
startMenuShortcutComboBox.setSelected(false);
if(Boolean.parseBoolean(panel.getWizard().getProperty(CREATE_START_MENU_SHORTCUT_PROPERTY))) {
startMenuShortcutComboBox.doClick();
}
super.initialize();
}
@Override
protected void saveInput() {
super.saveInput();
panel.getWizard().setProperty(
CREATE_DESKTOP_SHORTCUT_PROPERTY,
StringUtils.EMPTY_STRING + desktopShortcutComboBox.isSelected());
panel.getWizard().setProperty(
CREATE_START_MENU_SHORTCUT_PROPERTY,
StringUtils.EMPTY_STRING + startMenuShortcutComboBox.isSelected());
}
@Override
protected String validateInput() {
String errorMessage = super.validateInput();
return errorMessage;
}
// private //////////////////////////////////////////////////////////////////
private void initComponents() {
// selectedLocationField ////////////////////////////////////////////////
desktopShortcutComboBox = new NbiCheckBox();
startMenuShortcutComboBox = new NbiCheckBox();
// this /////////////////////////////////////////////////////////////////
add(desktopShortcutComboBox, new GridBagConstraints(
0, 2, // x, y
2, 1, // width, height
1.0, 0.0, // weight-x, weight-y
GridBagConstraints.LINE_START, // anchor
GridBagConstraints.HORIZONTAL, // fill
new Insets(15, 11, 0, 11), // padding
0, 0)); // padx, pady - ???
add(startMenuShortcutComboBox, new GridBagConstraints(
0, 3, // x, y
2, 1, // width, height
1.0, 0.0, // weight-x, weight-y
GridBagConstraints.LINE_START, // anchor
GridBagConstraints.HORIZONTAL, // fill
new Insets(7, 11, 0, 11), // padding
0, 0)); // padx, pady - ???
}
}
/////////////////////////////////////////////////////////////////////////////////
// Constants
public static final String DEFAULT_TITLE =
ResourceUtils.getString(HelloWorldPanel.class,
"P.title"); // NOI18N
public static final String DEFAULT_DESCRIPTION =
ResourceUtils.getString(HelloWorldPanel.class,
"P.description"); // NOI18N
public static final String DEFAULT_DESTINATION_LABEL_TEXT =
ResourceUtils.getString(HelloWorldPanel.class,
"P.destination.label.text"); // NOI18N
public static final String DEFAULT_DESTINATION_BUTTON_TEXT =
ResourceUtils.getString(HelloWorldPanel.class,
"P.destination.button.text"); // NOI18N
public static final String CREATE_DESKTOP_SHORTCUT_NAME =
ResourceUtils.getString(HelloWorldPanel.class,
"P.create.desktop.shortcut"); // NOI18N
public static final String CREATE_START_MENU_SHORTCUT_NAME_WINDOWS =
ResourceUtils.getString(HelloWorldPanel.class,
"P.create.start.menu.shortcut.windows"); // NOI18N
public static final String CREATE_START_MENU_SHORTCUT_NAME_UNIX =
ResourceUtils.getString(HelloWorldPanel.class,
"P.create.start.menu.shortcut.unix"); // NOI18N
public static final String CREATE_START_MENU_SHORTCUT_NAME_MAC =
ResourceUtils.getString(HelloWorldPanel.class,
"P.create.start.menu.shortcut.macosx"); // NOI18N
public static final String CREATE_DESKTOP_SHORTCUT_PROPERTY =
"create.desktop.shortcut";
public static final String CREATE_START_MENU_SHORTCUT_PROPERTY =
"create.start.menu.shortcut";
}