001: // @@
002: // @@
003: /*
004: * Wi.Ser Framework
005: *
006: * LGPL Version: 1.8.1, 20-September-2007
007: * Copyright (C) 2005-2006 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.ho.client.swing;
032:
033: import java.awt.*;
034: import java.awt.event.*;
035:
036: import javax.swing.*;
037:
038: import de.ug2t.kernel.*;
039: import de.ug2t.unifiedGui.interfaces.*;
040:
041: public class HoSwingSimpleLink extends HoSwingComponent implements
042: IUnLink {
043: final class MyJButton extends JButton {
044: public void paint(Graphics g) {
045: JLabel l_label = new JLabel(
046: HoSwingSimpleLink.this .pem_swingButton.getText());
047: l_label.setIcon(HoSwingSimpleLink.this .pem_swingButton
048: .getIcon());
049: l_label
050: .setToolTipText(HoSwingSimpleLink.this .pem_swingButton
051: .getToolTipText());
052: l_label
053: .setForeground(HoSwingSimpleLink.this .pem_swingButton
054: .getForeground());
055: l_label
056: .setBackground(HoSwingSimpleLink.this .pem_swingButton
057: .getBackground());
058: l_label.setOpaque(HoSwingSimpleLink.this .pem_swingButton
059: .isOpaque());
060: l_label.setEnabled(HoSwingSimpleLink.this .pem_swingButton
061: .isEnabled());
062: l_label.setBorder(HoSwingSimpleLink.this .pem_swingButton
063: .getBorder());
064: l_label.setFont(HoSwingSimpleLink.this .pem_swingButton
065: .getFont());
066: l_label
067: .setHorizontalAlignment(HoSwingSimpleLink.this .pem_swingButton
068: .getHorizontalAlignment());
069: l_label.setSize(getWidth(), getHeight());
070:
071: l_label.paint(g);
072: };
073:
074: /**
075: *
076: */
077: public MyJButton() {
078: super ();
079: }
080:
081: /**
082: * @param text
083: */
084: public MyJButton(String text) {
085: super (text);
086: }
087:
088: /**
089: * @param a
090: */
091: public MyJButton(Action a) {
092: super (a);
093: }
094:
095: /**
096: * @param icon
097: */
098: public MyJButton(Icon icon) {
099: super (icon);
100: }
101:
102: /**
103: * @param text
104: * @param icon
105: */
106: public MyJButton(String text, Icon icon) {
107: super (text, icon);
108: }
109: }
110:
111: private JButton pem_swingButton = null;
112: private HoSwingImage pem_icon = null;
113:
114: public HoSwingSimpleLink(String xValue, IUnApplication xAppl)
115: throws Exception {
116: super (xValue, xAppl);
117: this .pcmf_setLocalValue(xValue);
118: this .pcmf_setEventOnChange(true);
119:
120: pem_swingButton = new MyJButton(xValue);
121: pem_swingButton.setBorder(null);
122: pem_swingButton.setMargin(new Insets(2, 2, 2, 2));
123: pem_swingButton.setCursor(Cursor
124: .getPredefinedCursor(Cursor.HAND_CURSOR));
125:
126: super .pdm_realSwingCmp = this .pem_swingButton;
127: ((HoSwingClient) xAppl).pcmf_addKeyDispatcher(this );
128:
129: ActionListener l = new ActionListener() {
130: public void actionPerformed(ActionEvent ev) {
131: try {
132: String l_objName = HoSwingSimpleLink.this
133: .pcmf_getObjName();
134:
135: // Lokale Listener aufrufen
136: HoSwingSimpleLink.this
137: .pcmf_setValue(HoSwingSimpleLink.this
138: .pcmf_getValue());
139: HoSwingSimpleLink.this .pcmf_setRefresh();
140: HoSwingSimpleLink.this .pcmf_dispatchEvent();
141:
142: if (HoSwingSimpleLink.this .pem_session
143: .pcmf_isDisabled())
144: return;
145:
146: // Werte setzen um diese zum Server zu übertragen
147: ((HoSwingPage) HoSwingSimpleLink.this
148: .pcmf_getAppl().pcmf_getActive())
149: .pcmf_setSubmitValue(l_objName,
150: HoSwingSimpleLink.this
151: .pcmf_getValue().toString());
152: HoSwingSimpleLink.this .pcmf_addSyncedWidgets(
153: (HoSwingPage) HoSwingSimpleLink.this
154: .pcmf_getAppl().pcmf_getActive(),
155: HoSwingSimpleLink.this );
156: if (HoSwingSimpleLink.this .pcmf_getUnComponent()
157: .pcmf_isSubmit() == true)
158: ((HoSwingPage) HoSwingSimpleLink.this
159: .pcmf_getAppl().pcmf_getActive())
160: .pcmf_submit();
161: } catch (Exception e) {
162: KeLog.pcmf_logException("ug2t", this , e);
163: }
164: ;
165: };
166: };
167: this .pem_swingButton.addActionListener(l);
168:
169: return;
170: };
171:
172: public void pcmf_setValue(Object xValue) {
173: if (xValue instanceof HoSwingImage) {
174: this .pem_swingButton
175: .setIcon(((JLabel) ((HoSwingImage) xValue)
176: .pcmf_getRealSwingObj()).getIcon());
177: this .pem_swingButton.setText(null);
178: }
179: ;
180:
181: super .pcmf_setValue(xValue);
182: };
183:
184: public void pcmf_setIcon(IUnImage xIcon) {
185: pem_icon = (HoSwingImage) xIcon;
186: this .pem_swingButton.setIcon(((JLabel) pem_icon
187: .pcmf_getRealSwingObj()).getIcon());
188: }
189:
190: public IUnImage pcmf_getIcon() {
191: return (pem_icon);
192: };
193:
194: public void pcmf_setKeyAccess(int xKey) {
195: this .pem_swingButton.setMnemonic(Character
196: .toString((char) xKey).toUpperCase().charAt(0));
197: };
198:
199: public int pcmf_getAccKey() {
200: return (this .pem_swingButton.getMnemonic());
201: }
202:
203: private int pem_talign = IUnInputField.TEXT_ALIGN_WEST;
204:
205: public void pcmf_setTextAlign(int xAlign) {
206: if (IUnInputField.TEXT_ALIGN_EAST == xAlign)
207: this .pem_swingButton
208: .setHorizontalAlignment(SwingConstants.RIGHT);
209: else if (IUnInputField.TEXT_ALIGN_CENTER == xAlign)
210: this .pem_swingButton
211: .setHorizontalAlignment(SwingConstants.CENTER);
212: else
213: this .pem_swingButton
214: .setHorizontalAlignment(SwingConstants.LEFT);
215:
216: this .pem_talign = xAlign;
217: }
218:
219: public int pcmf_getTextAlign() {
220: return (this.pem_talign);
221: }
222: }
|