private final WindowOutputProcessor op;
private final Menu menu;
private final JPanel panel1;
- private final JPanel panel2;
private final JSplitPane split1;
private final JSplitPane split2;
private final ResultSetTable resultSetTable;
this.op = new WindowOutputProcessor(this, resultSetTable, textArea);
this.menu = new Menu(this);
this.panel1 = new JPanel(new BorderLayout());
- this.panel2 = new JPanel(new BorderLayout());
this.split1 = split1;
this.split2 = new JSplitPane(JSplitPane.VERTICAL_SPLIT);
this.resultSetTable = resultSetTable;
* | | scroll(resultSetTable) | |
* | +------------------------+ |
* | +------------------------+ |
- * | | panel2 | |
- * | | +--------------------+ | |
- * | | | scroll(textArea) | | |
- * | | +--------------------+ | |
- * | | | textSearchPanel | | |
- * | | +--------------------+ | |
+ * | | scroll(textArea) | |
* | +------------------------+ |
* +----------------------------+
* when DatabaseInfoTree is visible
* | | | (infoTree) | | | | |
* | | +------------+ +------------+ | |
* | +-------------------------------+ |
+ * | | textSearchPanel | |
+ * | +-------------------------------+ |
* +-----------------------------------+
* | status bar |
* +-----------------------------------+
* | +-------------------------------+ |
* | | split2 | |
* | +-------------------------------+ |
+ * | | textSearchPanel | |
+ * | +-------------------------------+ |
* +-----------------------------------+
* | status bar |
* +-----------------------------------+
*/
- panel2.add(new JScrollPane(textArea, VERTICAL_SCROLLBAR_ALWAYS, HORIZONTAL_SCROLLBAR_NEVER),
- BorderLayout.CENTER);
- panel2.add(textSearchPanel, BorderLayout.SOUTH);
split2.setTopComponent(new JScrollPane(resultSetTable));
- split2.setBottomComponent(panel2);
+ split2.setBottomComponent(new JScrollPane(textArea, VERTICAL_SCROLLBAR_ALWAYS, HORIZONTAL_SCROLLBAR_NEVER));
op.add(panel1, BorderLayout.CENTER);
op.add(statusBar, BorderLayout.PAGE_END);
op.setJMenuBar(menu);
// XXX cannot restore config of status-bar at following code
// statusBar.removePropertyChangeListener(menu);
// [Events]
- op.addWindowListener(new WindowAdapter() {
- @Override
- public void windowClosing(WindowEvent e) {
- requestClose();
- }
- });
ContextMenu.create(infoTree, infoTree);
ContextMenu.create(resultSetTable);
ContextMenu.create(resultSetTable.getRowHeader(), resultSetTable, "ResultSetTable");
textSearchPanel.setVisible(true);
} else if (ev.isAnyOf(toggleFocus)) {
if (textArea.isFocusOwner()) {
+ infoTree.requestFocus();
+ } else if (infoTree.isFocusOwner()) {
resultSetTable.requestFocus();
} else {
textArea.requestFocus();
split1.setBottomComponent(split2);
panel1.removeAll();
panel1.add(split1, BorderLayout.CENTER);
+ panel1.add(textSearchPanel, BorderLayout.PAGE_END);
infoTree.setEnabled(true);
if (env != null) {
try {
infoTree.setEnabled(false);
panel1.removeAll();
panel1.add(split2, BorderLayout.CENTER);
+ panel1.add(textSearchPanel, BorderLayout.PAGE_END);
}
SwingUtilities.updateComponentTreeUI(op);
}
private void loadConfiguration() {
- Configuration cnf = Configuration.load(Bootstrap.getDirectory());
+ Configuration cnf = Configuration.load();
op.setSize(cnf.getSize());
op.setLocation(cnf.getLocation());
split2.setDividerLocation(cnf.getDividerLocation());
}
private void saveConfiguration() {
- Configuration cnf = Configuration.load(Bootstrap.getDirectory());
+ Configuration cnf = Configuration.load();
if ((op.getExtendedState() & Frame.MAXIMIZED_BOTH) == 0) {
// only not maximized
cnf.setSize(op.getSize());
private static final Logger log = Logger.getLogger(Configuration.class);
- private transient File directory;
-
private Dimension size;
private Point location;
private int dividerLocation;
this.postProcessMode = AnyActionKey.postProcessMode.toString();
}
- void setDirectory(File directory) {
- this.directory = directory;
- }
-
void save() {
- final File file = getFile(directory);
- log.debug("save Configuration to: [%s]", file);
+ final File file = getFile();
+ log.debug("save Configuration to: [%s]", file.getAbsolutePath());
try {
XMLEncoder encoder = new XMLEncoder(new FileOutputStream(file));
try {
}
}
- static Configuration load(File directory) {
- final File file = getFile(directory);
- log.debug("load Configuration from: [%s]", file);
+ static Configuration load() {
+ final File file = getFile();
+ log.debug("load Configuration from: [%s]", file.getAbsolutePath());
if (file.exists()) {
try {
XMLDecoder decoder = new XMLDecoder(new FileInputStream(file));
try {
- final Configuration instance = (Configuration)decoder.readObject();
- instance.setDirectory(directory);
- return instance;
+ return (Configuration)decoder.readObject();
} finally {
decoder.close();
}
log.warn(ex);
}
}
- final Configuration instance = new Configuration();
- instance.setDirectory(directory);
- return instance;
+ return new Configuration();
}
- private static File getFile(File systemDirectory) {
- final File file = new File(systemDirectory, Configuration.class.getName() + ".xml");
- return file.getAbsoluteFile();
+ private static File getFile() {
+ return Bootstrap.getSystemFile(Configuration.class.getName() + ".xml");
}
public Dimension getSize() {
}
private static void showHelp() {
- final String htmlFileName = "MANUAL_ja.html";
+ final File localeFile = new File("MANUAL_" + Locale.getDefault().getLanguage() + ".html");
+ final File htmlFile = (localeFile.exists()) ? localeFile : new File("MANUAL.html");
+ boolean wasOpened = false;
if (Desktop.isDesktopSupported()) {
Desktop desktop = Desktop.getDesktop();
if (desktop.isSupported(Desktop.Action.OPEN)) {
- File file = new File(htmlFileName);
- if (file.exists()) {
+ if (htmlFile.exists()) {
try {
- desktop.open(file);
+ desktop.open(htmlFile);
+ wasOpened = true;
} catch (IOException ex) {
throw new RuntimeException(ex);
}
}
}
- } else {
- final String msg = res.get("e.cannot-open-help-automatically", htmlFileName);
+ }
+ if (!wasOpened) {
+ final String msg = String.format("%s%nfile=%s",
+ res.get("e.cannot-open-help-automatically", htmlFile),
+ htmlFile.getAbsolutePath());
WindowOutputProcessor.showInformationMessageDialog(getRootFrame(), msg, "");
}
}