blob: 5d0ab1a1f40395d899f1aba2b697eccc523cae3d [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.openoffice.setup.Dialogs;
import org.openoffice.setup.InstallData;
import org.openoffice.setup.ResourceManager;
import org.openoffice.setup.SetupFrame;
import org.openoffice.setup.Util.DialogFocusTraversalPolicy;
import java.awt.BorderLayout;
import java.awt.ComponentOrientation;
import java.awt.Dimension;
import java.awt.Insets;
import java.awt.event.ActionListener;
import java.io.File;
import javax.swing.JButton;
import javax.swing.JComponent;
import javax.swing.JDialog;
import javax.swing.JEditorPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JSeparator;
import javax.swing.border.EmptyBorder;
public class HelpDialog extends JDialog implements ActionListener {
private JButton okButton;
private JEditorPane editorPane;
private JScrollPane editorScrollPane;
private String helpFileName;
private String helpFileString;
public HelpDialog(SetupFrame setupFrame) {
super(setupFrame.getDialog());
InstallData data = InstallData.getInstance();
helpFileString = setupFrame.getCurrentPanel().getHelpFileName();
helpFileName = ResourceManager.getFileName(helpFileString);
// String dialogName = setupFrame.getCurrentPanel().getName();
String helpTitle = ResourceManager.getString("String_Help");
setTitle(helpTitle);
// setLayout(new java.awt.BorderLayout());
this.getContentPane().setLayout(new java.awt.BorderLayout());
JPanel toppanel = new JPanel();
toppanel.setLayout(new java.awt.BorderLayout());
toppanel.setBorder(new EmptyBorder(new Insets(5, 10, 5, 10)));
if ( data.useRtl() ) { toppanel.setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT); }
JPanel buttonpanel = new JPanel();
buttonpanel.setLayout(new java.awt.FlowLayout());
buttonpanel.setBorder(new EmptyBorder(new Insets(5, 10, 5, 10)));
if ( data.useRtl() ) { buttonpanel.setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT); }
//Create an editor pane.
editorPane = createEditorPane();
editorScrollPane = new JScrollPane(editorPane);
editorScrollPane.setPreferredSize(new Dimension(250, 145));
editorScrollPane.setBorder(new EmptyBorder(new Insets(5, 10, 5, 10)));
if ( data.useRtl() ) { editorScrollPane.setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT); }
// String helpTitle1 = null;
// InstallData data = InstallData.getInstance();
// if ( data.isInstallationMode() ) {
// helpTitle1 = ResourceManager.getString("String_Help_Title_1");
// } else {
// helpTitle1 = ResourceManager.getString("String_Help_Title_1_Uninstallation");
// }
// PanelLabel label1 = new PanelLabel(helpTitle1, true);
// String helpTitle2 = ResourceManager.getString("String_Help_Title_2");
// PanelLabel label2 = new PanelLabel(helpTitle2);
String okString = ResourceManager.getString("String_OK");
okButton = new JButton(okString);
okButton.setEnabled(true);
okButton.addActionListener(this);
if ( data.useRtl() ) { okButton.setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT); }
JSeparator separator = new JSeparator();
// toppanel.add(label1, BorderLayout.NORTH);
// toppanel.add(label2, BorderLayout.CENTER);
buttonpanel.add(okButton);
this.getContentPane().add(toppanel, BorderLayout.NORTH);
this.getContentPane().add(editorScrollPane, BorderLayout.CENTER);
this.getContentPane().add(buttonpanel, BorderLayout.SOUTH);
// Setting tab-order and focus on okButton
DialogFocusTraversalPolicy policy = new DialogFocusTraversalPolicy(new JComponent[] {okButton, editorScrollPane});
this.setFocusTraversalPolicy(policy); // set policy
this.setFocusCycleRoot(true); // enable policy
}
private JEditorPane createEditorPane() {
JEditorPane editorPane = new JEditorPane();
editorPane.setEditable(false);
InstallData data = InstallData.getInstance();
File htmlDirectory = data.getInfoRoot("html");
if ( htmlDirectory != null) {
File htmlFile = new File(htmlDirectory, helpFileName);
if (! htmlFile.exists()) {
System.err.println("Couldn't find file: " + htmlFile.toString());
}
try {
// System.err.println("URLPath: " + htmlFile.toURL());
editorPane.setContentType("text/html;charset=utf-8");
editorPane.setPage(htmlFile.toURL());
} catch (Exception e) {
e.printStackTrace();
System.err.println("Attempted to read a bad URL");
}
}
else {
System.err.println("Did not find html directory");
}
return editorPane;
}
// public void setTabForScrollPane() {
// JScrollBar ScrollBar = editorScrollPane.getVerticalScrollBar();
// editorPane.setFocusable(true);
// if ( ScrollBar.isShowing() ) {
// } else {
// editorPane.setFocusable(false);
// }
// }
public void actionPerformed (java.awt.event.ActionEvent evt) {
setVisible(false);
dispose();
}
}