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: * Robert Morris <robertj@morris.net>
022: */
023:
024: package org.swingml.model;
025:
026: import org.swingml.*;
027: import org.swingml.system.*;
028:
029: public class ButtonGroupModel extends SwingMLModel {
030:
031: private int bevelType = -1;
032: private String border = null;
033: private int cols = -1;
034: private boolean enabled = true;
035: private int rows = -1;
036:
037: public ButtonGroupModel() {
038: super ();
039: }
040:
041: public int getBevelType() {
042: return this .bevelType;
043: }
044:
045: public String getBorder() {
046: return this .border;
047: }
048:
049: public int getCols() {
050: return this .cols;
051: }
052:
053: public int getRows() {
054: return this .rows;
055: }
056:
057: public boolean isEnabled() {
058: return enabled;
059: }
060:
061: public void setBevelType(int aBevelType) {
062: this .bevelType = aBevelType;
063: }
064:
065: public void setBorder(String aBorder) {
066: this .border = aBorder;
067: }
068:
069: public void setCols(int aCols) {
070: this .cols = aCols;
071: }
072:
073: public void setEnabled(boolean enabled) {
074: this .enabled = enabled;
075: }
076:
077: public void setRows(int aRows) {
078: this .rows = aRows;
079: }
080:
081: public void validate() {
082: if (super .getParent().getLayout() != null
083: && super .getParent().getLayout().equalsIgnoreCase(
084: Constants.BORDERLAYOUT)) {
085: if (super .getOrientation() == null) {
086: SwingMLLogger
087: .getInstance()
088: .log(
089: "Syntax error: The parameter ORIENTATION in the element "
090: + super .getName()
091: + " is required since its parent's LAYOUT is BorderLayout. Add the parameter ORIENTATION to the element "
092: + super .getName()
093: + " or change its parent's LAYOUT to other than BorderLayout.");
094: }
095: }
096: if (super .getParent().getLayout() != null
097: && !super .getParent().getLayout().equalsIgnoreCase(
098: Constants.BORDERLAYOUT)) {
099: if (super .getOrientation() != null) {
100: SwingMLLogger
101: .getInstance()
102: .log(
103: "Syntax error: The parameter ORIENTATION in the element "
104: + super .getName()
105: + " 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 "
106: + super .getName() + ".");
107: }
108: }
109: if (this .border.equalsIgnoreCase(Constants.BEVELBORDER)) {
110: if (this .bevelType == -1) {
111: SwingMLLogger
112: .getInstance()
113: .log(
114: "Syntax error: The parameter BEVELTYPE in the element "
115: + super .getName()
116: + " is required since the since its BORDER is BevelBorder. Add the parameter BEVELTYPE to the element "
117: + super .getName()
118: + " or change its BORDER to other than BevelBorder");
119: }
120: }
121: if (!this .border.equalsIgnoreCase(Constants.BEVELBORDER)) {
122: if (this .bevelType != -1) {
123: SwingMLLogger
124: .getInstance()
125: .log(
126: "Syntax error: The parameter BEVELTYPE in element "
127: + super .getName()
128: + " should be used only when its BORDER type is BevelBorder. Change its BORDER to BevelBorder or delete the parameter BEVELTYPE from the element "
129: + super .getName() + ".");
130: }
131: }
132: if (super .getParent() instanceof JTabbedPaneModel
133: && super .getText() == null) {
134: SwingMLLogger
135: .getInstance()
136: .log(
137: "Syntax error: The parameter TEXT is missing in the element "
138: + super .getName()
139: + ". Add the TEXT parameter to name the TAB.");
140: }
141: if (this .getLayout().equalsIgnoreCase(Constants.GRIDLAYOUT)) {
142: if (this .rows == 0 || this .cols == 0) {
143: SwingMLLogger
144: .getInstance()
145: .log(
146: "Syntax error: The value of the parameter ROWS or COLS in the element "
147: + super .getName()
148: + " should be numeric and greater than 0");
149: }
150: if (this .rows == -1 || this .cols == -1) {
151: SwingMLLogger
152: .getInstance()
153: .log(
154: "Syntax error: The parameter ROWS or COLS in the element "
155: + super .getName()
156: + " should be used since the parent's layout is GridLayout. Add the parameter ROWS or COLS.");
157: }
158: }
159: if (!this .getLayout().equalsIgnoreCase(Constants.GRIDLAYOUT)) {
160: if (this .rows != -1 || this .cols != -1) {
161: SwingMLLogger
162: .getInstance()
163: .log(
164: "Syntax error: The parameters ROWS or COLS in the element "
165: + super .getName()
166: + " are not allowed since its parent's layout is not GridLayout. Remove the parameter ROWS or COLS.");
167: }
168: }
169: if (super .getParent() instanceof JSplitPaneModel
170: && super .getOrientation() != null) {
171: SwingMLLogger
172: .getInstance()
173: .log(
174: "Syntax error: The parameters ORIENTATION in the element "
175: + super .getName()
176: + " is not allowed since its parent's layout is a JSplitPane. Remove the parameter ORIENTATION or put this element into a different container.");
177: }
178: }
179: }
|