001 /* This file is part of the project "Hilbert II" - http://www.qedeq.org
002 *
003 * Copyright 2000-2013, Michael Meyling <mime@qedeq.org>.
004 *
005 * "Hilbert II" is free software; you can redistribute
006 * it and/or modify it under the terms of the GNU General Public
007 * License as published by the Free Software Foundation; either
008 * version 2 of the License, or (at your option) any later version.
009 *
010 * This program is distributed in the hope that it will be useful,
011 * but WITHOUT ANY WARRANTY; without even the implied warranty of
012 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
013 * GNU General Public License for more details.
014 */
015
016 package org.qedeq.gui.se.main;
017
018 import java.awt.BorderLayout;
019 import java.awt.Dimension;
020
021 import javax.swing.JComponent;
022 import javax.swing.JPanel;
023 import javax.swing.JScrollPane;
024 import javax.swing.JSplitPane;
025
026 import org.qedeq.gui.se.control.QedeqController;
027 import org.qedeq.gui.se.control.SelectionListenerList;
028 import org.qedeq.gui.se.tree.QedeqTreeCtrl;
029 import org.qedeq.gui.se.tree.QedeqTreeModel;
030 import org.qedeq.gui.se.tree.QedeqTreeView;
031 import org.qedeq.kernel.bo.log.ModuleEventLog;
032
033 import com.jgoodies.forms.factories.Borders;
034 import com.jgoodies.looks.Options;
035 import com.jgoodies.uif_lite.component.UIFSplitPane;
036
037 /**
038 * Main pain of QEDEQ GUI window.
039 *
040 * @author Michael Meyling
041 * @version $Revision: 1.3 $
042 */
043 public class QedeqMainPane extends JPanel {
044
045 /**
046 * Constructor.
047 *
048 * @param controller Enables controller access.
049 */
050 public QedeqMainPane(final QedeqController controller) {
051 setLayout(new BorderLayout());
052 setOpaque(false);
053 setBorder(Borders.DIALOG_BORDER);
054 add(createSplits(controller));
055 }
056
057 /**
058 * Creates the two main stripped split panes.
059 *
060 * @param controller Enables controller access.
061 * @return Splits.
062 */
063 private JComponent createSplits(final QedeqController controller) {
064
065 final QedeqTreeModel treeModel = new QedeqTreeModel();
066 ModuleEventLog.getInstance().addLog(treeModel);
067 final QedeqTreeView treeView = new QedeqTreeView(treeModel);
068
069 SelectionListenerList listener = new SelectionListenerList();
070 final UpperTabbedView tabbedView = new UpperTabbedView(listener);
071 listener.addListener(tabbedView);
072 final LowerTabbedView lowerView = new LowerTabbedView(listener);
073
074 tabbedView.putClientProperty(Options.EMBEDDED_TABS_KEY, Boolean.TRUE);
075
076 final QedeqTreeCtrl treeCtrl = new QedeqTreeCtrl(treeView, treeModel, tabbedView, lowerView,
077 controller);
078 controller.setTreeCtrl(treeCtrl);
079
080 final JComponent left = new JScrollPane(treeView);
081 left.setPreferredSize(new Dimension(200, 200));
082
083 final JComponent right = tabbedView;
084 right.setPreferredSize(new Dimension(200, 150));
085
086 final JComponent lower = lowerView;
087 lower.setPreferredSize(new Dimension(200, 100));
088
089 final JSplitPane horizontalSplit = UIFSplitPane.createStrippedSplitPane(
090 JSplitPane.HORIZONTAL_SPLIT,
091 left,
092 right);
093
094
095 final JSplitPane verticalSplit = UIFSplitPane.createStrippedSplitPane(
096 JSplitPane.VERTICAL_SPLIT,
097 horizontalSplit,
098 lower);
099
100 verticalSplit.setResizeWeight(0.80);
101 return verticalSplit;
102 }
103
104 }
|