summaryrefslogtreecommitdiff
path: root/java/gjt/CardPanel.java
diff options
context:
space:
mode:
Diffstat (limited to 'java/gjt/CardPanel.java')
-rw-r--r--java/gjt/CardPanel.java48
1 files changed, 48 insertions, 0 deletions
diff --git a/java/gjt/CardPanel.java b/java/gjt/CardPanel.java
new file mode 100644
index 00000000000..c2ab1a9033c
--- /dev/null
+++ b/java/gjt/CardPanel.java
@@ -0,0 +1,48 @@
+package gjt;
+
+import java.awt.*;
+
+/**
+ * CardPanel employs a BorderLayout to lay out North and Center
+ * panels; extensions of CardPanel must implement
+ * Component viewSelector(). The component returned from
+ * Component viewSelector() is centered in the North panel, and
+ * should contain UI controls that allow selection of the
+ * component to be displayed in the Center panel.<p>
+ *
+ * @version 1.0, Apr 1 1996
+ * @author David Geary
+ * @see IconCardPanel
+ * @see ChoiceCardPanel
+ * @see gjt.test.ChoiceCardPanelTest
+ * @see gjt.test.IconCardPanelTest
+ */
+public abstract class CardPanel extends Panel {
+ private Panel north, center;
+ private CardLayout cards;
+
+ abstract public Component viewSelector();
+
+ public CardPanel() {
+ center = new Panel();
+ north = new Panel();
+
+ setLayout(new BorderLayout());
+ center.setLayout(cards = new CardLayout());
+ north.setLayout (new BorderLayout());
+
+ add("North", north);
+ add("Center", center);
+ }
+ public void addNotify() {
+ super.addNotify();
+ north.add("Center", viewSelector());
+ north.add("South", new Separator());
+ }
+ protected void addView(String name, Component component) {
+ center.add(name, component);
+ }
+ protected void showView(String name) {
+ cards.show(center, name);
+ }
+}