001: // @@
002: // @@
003: /*
004: * Wi.Ser Framework
005: *
006: * Version: 1.8.1, 20-September-2007
007: * Copyright (C) 2005 Dirk von der Weiden <dvdw@imail.de>
008: *
009: * This library is free software; you can redistribute it and/or
010: * modify it under the terms of the GNU Lesser General Public
011: * License as published by the Free Software Foundation; either
012: * version 2 of the License, or (at your option) any later version.
013: *
014: * This library is distributed in the hope that it will be useful,
015: * but WITHOUT ANY WARRANTY; without even the implied warranty of
016: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
017: * Lesser General Public License for more details.
018: *
019: * You should have received a copy of the GNU Lesser General Public
020: * License along with this library located in LGPL.txt in the
021: * license directory; if not, write to the
022: * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
023: * Boston, MA 02111-1307, USA.
024: *
025: * If this agreement does not cover your requirements, please contact us
026: * via email to get detailed information about the commercial license
027: * or our service offerings!
028: *
029: */
030: // @@
031: package de.ug2t.channel.markup.generic;
032:
033: import java.util.*;
034:
035: import de.ug2t.channel.markup.html.renderer.*;
036: import de.ug2t.connector.*;
037: import de.ug2t.kernel.*;
038: import de.ug2t.unifiedGui.interfaces.*;
039:
040: public final class MuGenericComboBox extends MuGenericComponent
041: implements IUnComboBox, IKePoolable {
042: private HashMap pem_values = new LinkedHashMap();
043: private IKeView pem_view = new HtmlComboBoxRenderer();
044:
045: public MuGenericComboBox(String xName, String xValue,
046: String xString, ACoDataGetter xTplGetter, Object xTplName,
047: MuGenericApplication xAppl) throws Exception {
048: super (xName, xTplGetter, xTplName, xAppl);
049:
050: this .pcmf_setView(pem_view);
051:
052: if (xString != null && xString.equals("") == false) {
053: this .pcmf_addValue(xValue, xString);
054: this .pcmf_setValue(xValue);
055: }
056:
057: this .pcmf_setBgColor("white");
058:
059: return;
060: };
061:
062: // @@
063:
064: public void pcmf_addValueObj(String xValue, KeRegisteredObject xObj) {
065: if (xObj instanceof KeTreeNode)
066: this .pcmf_addNode(xValue, (KeTreeNode) xObj);
067:
068: this .pcmf_addValue(xValue, xObj);
069: this .pcmf_setPropChanged(true);
070: }
071:
072: public void pcmf_addValue(String xValue, String xString) {
073: pem_values.put(xValue, xString);
074: this .pcmf_setPropChanged(true);
075: };
076:
077: private void pcmf_addValue(String xValue, Object xString) {
078: pem_values.put(xValue, xString);
079: this .pcmf_setPropChanged(true);
080: };
081:
082: public void pcmf_removeValue(String xValue) {
083: pem_values.remove(xValue);
084: this .pcmf_removeNode(xValue);
085: this .pcmf_setPropChanged(true);
086: };
087:
088: public HashMap pcmf_getValues() {
089: return (pem_values);
090: };
091:
092: public void pcmf_clearComboBox() {
093: this .pem_values.clear();
094:
095: Iterator l_it = new ArrayList(this .pcmf_getAllSubs())
096: .iterator();
097: Object l_obj = null;
098: while (l_it.hasNext()) {
099: l_obj = l_it.next();
100: if (l_obj instanceof IUnContextMenu
101: || l_obj instanceof IUnEventChannel)
102: continue;
103:
104: this .pcmf_removeNode((KeTreeNode) l_obj);
105: }
106:
107: this .pcmf_setPropChanged(true);
108: }
109:
110: public void pcmf_clearAndReleaseComboBox() {
111: this .pem_values.clear();
112:
113: Iterator l_it = new ArrayList(this .pcmf_getAllSubs())
114: .iterator();
115: Object l_obj = null;
116: while (l_it.hasNext()) {
117: l_obj = l_it.next();
118: if (l_obj instanceof IUnContextMenu
119: || l_obj instanceof IUnEventChannel)
120: continue;
121:
122: this .pcmf_removeNode((KeTreeNode) l_obj);
123: ((KeTreeNode) l_obj).pcmf_releaseSubs();
124: }
125:
126: this .pcmf_setPropChanged(true);
127: }
128:
129: public Object pcmf_getSelectedObject() {
130: int l_idx = this .pcmf_getSelectedRow();
131: if (l_idx == -1)
132: return (null);
133:
134: Object l_ret = this .pem_values.keySet().toArray()[l_idx];
135: return (l_ret);
136: }
137:
138: public Object pcmf_setSelectedRow(int xRow) {
139: if (xRow >= this .pem_values.size())
140: return (null);
141:
142: Object l_ret = this .pem_values.keySet().toArray()[xRow];
143: this .pcmf_setValue(l_ret);
144:
145: return (l_ret);
146: }
147:
148: public int pcmf_getSelectedRow() {
149: return (new ArrayList(this .pem_values.keySet()).indexOf(this
150: .pcmf_getValue()));
151: }
152:
153: private boolean pem_readOnly = false;
154:
155: public void pcmf_setReadOnly(boolean xReadOnly) {
156: if (this .pem_readOnly == xReadOnly)
157: return;
158:
159: this .pem_readOnly = xReadOnly;
160: this .pcmf_setPropChanged(true);
161: }
162:
163: public boolean pcmf_isReadOnly() {
164: return (this .pem_readOnly);
165: }
166:
167: // @@
168:
169: public void pcmf_clearListWidget() {
170: this .pcmf_clearComboBox();
171: }
172:
173: public void pcmf_clearAndReleaseListWidget() {
174: this .pcmf_clearAndReleaseComboBox();
175: }
176:
177: public void pcmf_beginTr() {
178: return;
179: }
180:
181: public void pcmf_commitTr() {
182: return;
183: }
184:
185: public boolean pcmf_isSelectable() {
186: return (true);
187: }
188: };
|