summaryrefslogtreecommitdiff
path: root/javainstaller2/src/JavaSetup/org/openoffice/setup/SetupFrame.java
diff options
context:
space:
mode:
Diffstat (limited to 'javainstaller2/src/JavaSetup/org/openoffice/setup/SetupFrame.java')
-rwxr-xr-xjavainstaller2/src/JavaSetup/org/openoffice/setup/SetupFrame.java300
1 files changed, 300 insertions, 0 deletions
diff --git a/javainstaller2/src/JavaSetup/org/openoffice/setup/SetupFrame.java b/javainstaller2/src/JavaSetup/org/openoffice/setup/SetupFrame.java
new file mode 100755
index 000000000000..98b7e0a1b7fc
--- /dev/null
+++ b/javainstaller2/src/JavaSetup/org/openoffice/setup/SetupFrame.java
@@ -0,0 +1,300 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+package org.openoffice.setup;
+import java.awt.BorderLayout;
+import java.awt.CardLayout;
+import java.awt.ComponentOrientation;
+import java.awt.Dimension;
+import java.awt.Insets;
+import java.awt.event.WindowAdapter;
+import java.io.File;
+import javax.swing.Box;
+import javax.swing.BoxLayout;
+import javax.swing.Icon;
+import javax.swing.JButton;
+import javax.swing.JDialog;
+import javax.swing.JLabel;
+import javax.swing.JPanel;
+import javax.swing.JSeparator;
+import javax.swing.border.EmptyBorder;
+
+public class SetupFrame extends WindowAdapter {
+
+ String StringPrevious;
+ String StringNext;
+ String StringCancel;
+ String StringFinish;
+ String StringHelp;
+ String StringAppTitle;
+
+ Icon IconStarOffice;
+
+ public static final String ACTION_NEXT = "ActionNext";
+ public static final String ACTION_PREVIOUS = "ActionPrevious";
+ public static final String ACTION_CANCEL = "ActionCancel";
+ public static final String ACTION_HELP = "ActionHelp";
+ public static final String ACTION_DETAILS = "ActionDetails";
+ public static final String ACTION_STOP = "ActionStop";
+
+ public static final int CODE_OK = 0;
+ public static final int CODE_CANCEL = 1;
+ public static final int CODE_ERROR = 2;
+
+ public static final int BUTTON_NEXT = 1;
+ public static final int BUTTON_PREVIOUS = 2;
+ public static final int BUTTON_CANCEL = 3;
+ public static final int BUTTON_HELP = 4;
+
+ private JButton mNextButton;
+ private JButton mPreviousButton;
+ private JButton mCancelButton;
+ private JButton mHelpButton;
+
+ private JDialog mDialog;
+
+ private JPanel mCardPanel;
+ private CardLayout mCardLayout;
+
+ private SetupActionListener mActionListener;
+ private DeckOfPanels mDeck;
+
+ public SetupFrame() {
+
+ StringPrevious = ResourceManager.getString("String_Previous");
+ StringNext = ResourceManager.getString("String_Next");
+ StringCancel = ResourceManager.getString("String_Cancel");
+ StringFinish = ResourceManager.getString("String_Finish");
+ StringHelp = ResourceManager.getString("String_Help");
+
+ InstallData data = InstallData.getInstance();
+ if ( data.isInstallationMode() ) {
+ StringAppTitle = ResourceManager.getString("String_ApplicationTitle");
+ } else {
+ StringAppTitle = ResourceManager.getString("String_ApplicationTitleUninstallation");
+ }
+
+ // The setup icon has to be flexible for customization, not included into the jar file
+ File iconFile = data.getInfoRoot("images");
+ iconFile = new File(iconFile, "Setup.gif");
+ IconStarOffice = ResourceManager.getIconFromPath(iconFile);
+
+ mActionListener = new SetupActionListener(this);
+ mDeck = new DeckOfPanels();
+
+ mDialog = new JDialog();
+ mDialog.setTitle(StringAppTitle);
+ initFrame();
+ }
+
+ public void addPanel(PanelController panel, String name) {
+ mCardPanel.add(panel.getPanel(), name);
+ panel.setSetupFrame(this);
+ mDeck.addPanel(panel, name);
+ }
+
+ public PanelController getCurrentPanel() {
+ return mDeck.getCurrentPanel();
+ }
+
+ public void setCurrentPanel(String name, boolean ignoreRepeat, boolean isNext) {
+ if (name == null)
+ close(CODE_ERROR);
+
+ PanelController panel = mDeck.getCurrentPanel();
+ boolean repeatDialog = false;
+ if (panel != null) {
+ repeatDialog = panel.afterShow(isNext);
+ if ( isNext ) {
+ name = panel.getNext(); // afterShow() could have changed the "next" dialog
+ }
+ if ( ignoreRepeat ) {
+ repeatDialog = false;
+ }
+ }
+
+ if ( repeatDialog ) {
+ name = panel.getName();
+ }
+
+ panel = mDeck.setCurrentPanel(name);
+ if (panel != null)
+ {
+ setButtonsForPanel(panel);
+ panel.beforeShow();
+ mCardLayout.show(mCardPanel, name);
+ panel.duringShow();
+ }
+ }
+
+ void setButtonsForPanel(PanelController panel) {
+
+ setButtonText(StringCancel, BUTTON_CANCEL);
+ setButtonText(StringHelp, BUTTON_HELP);
+ setButtonText(StringPrevious, BUTTON_PREVIOUS);
+ // setButtonEnabled((panel.getPrevious() != null), BUTTON_PREVIOUS);
+ // setButtonEnabled((panel.getNext() != null), BUTTON_CANCEL);
+ if (panel.getNext() == null) {
+ setButtonText(StringFinish, BUTTON_NEXT);
+ } else {
+ setButtonText(StringNext, BUTTON_NEXT);
+ }
+ }
+
+ public void setButtonText(String text, int button) {
+ switch (button) {
+ case BUTTON_NEXT: mNextButton.setText(text); break;
+ case BUTTON_PREVIOUS: mPreviousButton.setText(text); break;
+ case BUTTON_CANCEL: mCancelButton.setText(text); break;
+ case BUTTON_HELP: mHelpButton.setText(text); break;
+ }
+ }
+
+ public void setButtonSelected(int button) {
+ switch (button) {
+ case BUTTON_NEXT: mNextButton.grabFocus(); break;
+ case BUTTON_PREVIOUS: mPreviousButton.grabFocus(); break;
+ case BUTTON_CANCEL: mCancelButton.grabFocus(); break;
+ case BUTTON_HELP: mHelpButton.grabFocus(); break;
+ }
+ }
+
+ public void setButtonEnabled(boolean enabled, int button) {
+ switch (button) {
+ case BUTTON_NEXT: mNextButton.setEnabled(enabled); break;
+ case BUTTON_PREVIOUS: mPreviousButton.setEnabled(enabled); break;
+ case BUTTON_CANCEL: mCancelButton.setEnabled(enabled); break;
+ case BUTTON_HELP: mHelpButton.setEnabled(enabled); break;
+ }
+ }
+
+ public void removeButtonIcon(int button) {
+ switch (button) {
+ case BUTTON_NEXT: mNextButton.setIcon(null); break;
+ case BUTTON_PREVIOUS: mPreviousButton.setIcon(null); break;
+ case BUTTON_CANCEL: mCancelButton.setIcon(null); break;
+ case BUTTON_HELP: mHelpButton.setIcon(null); break;
+ }
+ }
+
+ public SetupActionListener getSetupActionListener() {
+ return mActionListener;
+ }
+
+ void close(int code) {
+ mDialog.dispose();
+ }
+
+ public JDialog getDialog() {
+ return mDialog;
+ }
+
+ public int showFrame() {
+ mDialog.pack();
+ mDialog.setLocationRelativeTo(null);
+ mDialog.setModal(true);
+ mDialog.setResizable(false);
+ // mDialog.setMinimumSize(new Dimension(679, 459));
+ mDialog.setVisible(true);
+ // System.err.println("Width: " + mDialog.getWidth() + ", Height: " + mDialog.getHeight());
+
+ return 0;
+ }
+
+ private void initFrame() {
+
+ mDialog.getContentPane().setLayout(new BorderLayout());
+
+ mCardLayout = new CardLayout();
+ mCardPanel = new JPanel();
+ mCardPanel.setBorder(new EmptyBorder(new Insets(5, 10, 5, 10)));
+ mCardPanel.setLayout(mCardLayout);
+
+ mPreviousButton = new JButton();
+ mNextButton = new JButton();
+ mCancelButton = new JButton();
+ mHelpButton = new JButton();
+
+ mPreviousButton.setHorizontalTextPosition(JButton.RIGHT);
+ mNextButton.setHorizontalTextPosition(JButton.LEFT);
+
+ mPreviousButton.setIcon(ResourceManager.getIcon("Icon_Previous"));
+ mNextButton.setIcon(ResourceManager.getIcon("Icon_Next"));
+
+ mPreviousButton.setActionCommand(ACTION_PREVIOUS);
+ mNextButton.setActionCommand(ACTION_NEXT);
+ mCancelButton.setActionCommand(ACTION_CANCEL);
+ mHelpButton.setActionCommand(ACTION_HELP);
+
+ mPreviousButton.addActionListener(mActionListener);
+ mNextButton.addActionListener(mActionListener);
+ mCancelButton.addActionListener(mActionListener);
+ mHelpButton.addActionListener(mActionListener);
+
+ InstallData data = InstallData.getInstance();
+
+ if (data.useRtl()) {
+ mPreviousButton.setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);
+ mNextButton.setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);
+ mCancelButton.setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);
+ mHelpButton.setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);
+ }
+
+ Box ButtonBox = new Box(BoxLayout.X_AXIS);
+ ButtonBox.setBorder(new EmptyBorder(new Insets(5, 10, 5, 10)));
+ ButtonBox.add(mPreviousButton);
+ ButtonBox.add(Box.createHorizontalStrut(10));
+ ButtonBox.add(mNextButton);
+ ButtonBox.add(Box.createHorizontalStrut(30));
+ ButtonBox.add(mCancelButton);
+ ButtonBox.add(Box.createHorizontalStrut(10));
+ ButtonBox.add(mHelpButton);
+ if (data.useRtl()) {
+ ButtonBox.setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);
+ }
+
+ JPanel ButtonPanel = new JPanel();
+ JSeparator Separator = new JSeparator();
+ ButtonPanel.setLayout(new BorderLayout());
+ ButtonPanel.setPreferredSize(new Dimension(612, 44));
+ ButtonPanel.add(Separator, BorderLayout.NORTH);
+ ButtonPanel.add(ButtonBox, java.awt.BorderLayout.EAST);
+
+ JPanel IconPanel = new JPanel();
+ JLabel Icon = new JLabel();
+ Icon.setIcon(IconStarOffice);
+// IconPanel.setPreferredSize(new Dimension(142, 372));
+// IconPanel.setBorder(new EmptyBorder(new Insets(10, 10, 10, 10)));
+ IconPanel.setLayout(new BorderLayout());
+ IconPanel.add(Icon);
+
+ mDialog.getContentPane().add(ButtonPanel, java.awt.BorderLayout.SOUTH);
+ mDialog.getContentPane().add(mCardPanel, java.awt.BorderLayout.CENTER);
+ mDialog.getContentPane().add(IconPanel, java.awt.BorderLayout.WEST);
+ }
+
+}