Source code: com/virtuosotechnologies/asaph/maingui/PaneController.java
1 /*
2 ================================================================================
3
4 FILE: PaneController.java
5
6 PROJECT:
7
8 Asaph
9
10 CONTENTS:
11
12 Controller for a pane
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 com.virtuosotechnologies.lib.propertyset.PropertySet;
46 import com.virtuosotechnologies.lib.base.ClassConstrainedKey;
47 import com.virtuosotechnologies.lib.base.UniqueClassConstrainedKey;
48
49
50 /**
51 * Controller for a pane
52 */
53 public interface PaneController
54 extends PropertySet
55 {
56 /**
57 * Property key for the pane title
58 */
59 public static final ClassConstrainedKey TITLE_KEY =
60 new UniqueClassConstrainedKey("title", String.class);
61
62 /**
63 * Property key for the platform-specific window modified indicator
64 */
65 public static final ClassConstrainedKey WINDOW_MODIFIED_KEY =
66 new UniqueClassConstrainedKey("windowModified", Boolean.class);
67
68
69 /**
70 * Returns true if the pane is still open. That is, if it hasn't had its
71 * close() method called yet. If this returns false, this PaneController is
72 * defunct and cannot have any other methods invoked.
73 *
74 * @return true if the pane is still open.
75 */
76 public boolean isOpen();
77
78
79 /**
80 * Close the pane in the main gui. Once the pane is closed, this handle
81 * will go defunct and cannot be used again, except to query isOpen().
82 *
83 * @exception IllegalStateException pane already closed.
84 */
85 public void close();
86
87
88 /**
89 * Returns true if this pane has focus. Focus means the internal frame
90 * or tab is in front and has keyboard focus.
91 *
92 * @return true if the pane has focus.
93 * @exception IllegalStateException pane is closed.
94 */
95 public boolean isFocused();
96
97
98 /**
99 * Cause this pane to grab focus. Focus means the internal frame or tab
100 * is in front and has keyboard focus.
101 *
102 * @exception IllegalStateException pane is closed.
103 */
104 public void grabFocus();
105 }