001: /* SwingML
002: * Copyright (C) 2002 SwingML Team
003: *
004: * This library is free software; you can redistribute it and/or
005: * modify it under the terms of the GNU Lesser General Public
006: * License as published by the Free Software Foundation; either
007: * version 2 of the License, or (at your option) any later version.
008: *
009: * This library is distributed in the hope that it will be useful,
010: * but WITHOUT ANY WARRANTY; without even the implied warranty of
011: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
012: * Lesser General Public License for more details.
013: *
014: * You should have received a copy of the GNU Lesser General Public
015: * License along with this library; if not, write to the
016: * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
017: * Boston, MA 02111-1307, USA.
018: *
019: * Authors:
020: * Ezequiel Cuellar <ecuellar@crosslogic.com>
021: *
022: */
023:
024: package org.swingml.model;
025:
026: import org.swingml.*;
027: import org.swingml.system.*;
028:
029: public class JDesktopPaneModel extends SwingMLModel {
030:
031: private int bevelType = -1;
032: private String border = null;
033: private int cols = -1;
034: private String externalLookAndFeel = null;
035: private String lookAndFeel = null;
036: private int rows = -1;
037: private String title = null;
038:
039: public JDesktopPaneModel() {
040: super ();
041: }
042:
043: public int getBevelType() {
044: return this .bevelType;
045: }
046:
047: public String getBorder() {
048: return this .border;
049: }
050:
051: public int getCols() {
052: return this .cols;
053: }
054:
055: public String getExternalLookAndFeel() {
056: return this .externalLookAndFeel;
057: }
058:
059: public String getLookAndFeel() {
060: return this .lookAndFeel;
061: }
062:
063: public int getRows() {
064: return this .rows;
065: }
066:
067: public String getTitle() {
068: return this .title;
069: }
070:
071: public void setBevelType(int aBevelType) {
072: this .bevelType = aBevelType;
073: }
074:
075: public void setBorder(String aBorder) {
076: this .border = aBorder;
077: }
078:
079: public void setCols(int aCols) {
080: this .cols = aCols;
081: }
082:
083: public void setExternalLookAndFeel(String aLaf) {
084: this .externalLookAndFeel = aLaf;
085: }
086:
087: public void setLookAndFeel(String aLookAndFeel) {
088: this .lookAndFeel = aLookAndFeel;
089: }
090:
091: public void setRows(int aRows) {
092: this .rows = aRows;
093: }
094:
095: public void setTitle(String aTitle) {
096: this .title = aTitle;
097: }
098:
099: public void validate() {
100: if (super .getParent().getLayout() != null
101: && super .getParent().getLayout().equalsIgnoreCase(
102: Constants.BORDERLAYOUT)) {
103: if (super .getOrientation() == null) {
104: SwingMLLogger
105: .getInstance()
106: .log(
107: "Syntax error: The parameter ORIENTATION in the element "
108: + super .getName()
109: + " is required since its parent's LAYOUT is BorderLayout. Add the parameter ORIENTATION to the element "
110: + super .getName()
111: + " or change its parent's LAYOUT to other than BorderLayout.");
112: }
113: }
114: if (super .getParent().getLayout() != null
115: && !super .getParent().getLayout().equalsIgnoreCase(
116: Constants.BORDERLAYOUT)) {
117: if (super .getOrientation() != null) {
118: SwingMLLogger
119: .getInstance()
120: .log(
121: "Syntax error: The parameter ORIENTATION in the element "
122: + super .getName()
123: + " should be used only when its parent's LAYOUT is BorderLayout. Change its parent's LAYOUT to BorderLayout or delete the parameter ORIENTATION from the element "
124: + super .getName() + ".");
125: }
126: }
127: if (this .border.equalsIgnoreCase(Constants.BEVELBORDER)) {
128: if (this .bevelType == -1) {
129: SwingMLLogger
130: .getInstance()
131: .log(
132: "Syntax error: The parameter BEVELTYPE in the element "
133: + super .getName()
134: + " is required since the since its BORDER is BevelBorder. Add the parameter BEVELTYPE to the element "
135: + super .getName()
136: + " or change its BORDER to other than BevelBorder");
137: }
138: }
139: if (!this .border.equalsIgnoreCase(Constants.BEVELBORDER)) {
140: if (this .bevelType != -1) {
141: SwingMLLogger
142: .getInstance()
143: .log(
144: "Syntax error: The parameter BEVELTYPE in element "
145: + super .getName()
146: + " should be used only when its BORDER type is BevelBorder. Change its BORDER to BevelBorder or delete the parameter BEVELTYPE from the element "
147: + super .getName() + ".");
148: }
149: }
150: if (this .border.equals("") && this .title != null) {
151: SwingMLLogger
152: .getInstance()
153: .log(
154: "Syntax error: The TITLE will not be shown in the element "
155: + super .getName()
156: + " because it doesn't have a border. Add the BORDER parameter to the element "
157: + super .getName() + ".");
158: }
159: if (super .getParent() instanceof JTabbedPaneModel
160: && super .getText() == null) {
161: SwingMLLogger
162: .getInstance()
163: .log(
164: "Syntax error: The parameter TEXT is missing in the element "
165: + super .getName()
166: + ". Add the TEXT parameter to name the TAB.");
167: }
168: if (this .getLayout().equalsIgnoreCase(Constants.GRIDLAYOUT)) {
169: if (this .rows == 0 || this .cols == 0) {
170: SwingMLLogger
171: .getInstance()
172: .log(
173: "Syntax error: The value of the parameter ROWS or COLS in the element "
174: + super .getName()
175: + " should be numeric and greater than 0");
176: }
177: if (this .rows == -1 || this .cols == -1) {
178: SwingMLLogger
179: .getInstance()
180: .log(
181: "Syntax error: The parameter ROWS or COLS in the element "
182: + super .getName()
183: + " should be used since the parent's layout is GridLayout. Add the parameter ROWS or COLS.");
184: }
185: }
186: if (!this .getLayout().equalsIgnoreCase(Constants.GRIDLAYOUT)) {
187: if (this .rows != -1 || this .cols != -1) {
188: SwingMLLogger
189: .getInstance()
190: .log(
191: "Syntax error: The parameters ROWS or COLS in the element "
192: + super .getName()
193: + " are not allowed since its parent's layout is not GridLayout. Remove the parameter ROWS or COLS.");
194: }
195: }
196: if (super .getParent() instanceof JSplitPaneModel
197: && super .getOrientation() != null) {
198: SwingMLLogger
199: .getInstance()
200: .log(
201: "Syntax error: The parameters ORIENTATION in the element "
202: + super .getName()
203: + " is not allowed since its parent's layout is a JSplitPane. Remove the parameter ORIENTATION or put this element into a different container.");
204: }
205:
206: if (externalLookAndFeel != null
207: && externalLookAndFeel.length() > 0
208: && !lookAndFeel.equalsIgnoreCase(Constants.EXTERNAL)) {
209: SwingMLLogger
210: .getInstance()
211: .log(
212: "Syntax error: An EXT-LAF was supplied but the LAF attribute was not set to External.");
213: }
214:
215: if (lookAndFeel != null
216: && lookAndFeel.equalsIgnoreCase(Constants.EXTERNAL)
217: && (externalLookAndFeel == null || externalLookAndFeel
218: .length() == 0)) {
219: SwingMLLogger
220: .getInstance()
221: .log(
222: "Syntax error: The LAF attribute was set to External, but no value was supplied for EXT-LAF. Defaulting to METAL.");
223: this.setLookAndFeel(Constants.METAL);
224: }
225: }
226: }
|