Source code: com/virtuosotechnologies/asaph/maingui/PaneManager.java
1 /*
2 ================================================================================
3
4 FILE: PaneManager.java
5
6 PROJECT:
7
8 Asaph
9
10 CONTENTS:
11
12 The pane manager API exported by the maingui plugin
13
14 PROGRAMMERS:
15
16 Daniel Azuma (DA) <dazuma@kagi.com>
17
18 COPYRIGHT:
19
20 Copyright (C) 2003 Daniel Azuma (dazuma@kagi.com)
21
22 This program is free software; you can redistribute it and/or
23 modify it under the terms of the GNU General Public License as
24 published by the Free Software Foundation; either version 2
25 of the License, or (at your option) any later version.
26
27 This program is distributed in the hope that it will be useful,
28 but WITHOUT ANY WARRANTY; without even the implied warranty of
29 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
30 GNU General Public License for more details.
31
32 You should have received a copy of the GNU General Public
33 License along with this program; if not, write to
34 Free Software Foundation, Inc.
35 59 Temple Place, Suite 330
36 Boston, MA 02111-1307 USA
37
38 ================================================================================
39 */
40
41
42 package com.virtuosotechnologies.asaph.maingui;
43
44
45 import javax.swing.JComponent;
46
47 import com.virtuosotechnologies.lib.command.CommandNode;
48
49
50 /**
51 * The pane manager API exported by the maingui plugin
52 */
53 public interface PaneManager
54 {
55 /**
56 * The name of this API.
57 */
58 public static final String API_NAME =
59 "com.virtuosotechnologies.asaph.maingui.PaneManager";
60
61
62 /**
63 * Open a pane in the main gui. Depending on how the main gui is
64 * implemented, this pane may show up as a tab in a tabbed pane, or an
65 * internal frame, or in some other similar fashion.
66 *
67 * @param component Component representing the pane
68 * @param title initial title for the pane
69 * @param commands CommandNode for creating a menu bar, or null for no menu bar
70 * @param handler a PaneHandler for handling pane events
71 * @return A PaneController that will manipulate this pane
72 */
73 public PaneController createPane(
74 JComponent component,
75 String title,
76 CommandNode commands,
77 PaneHandler handler);
78 }