Initial commit of newLISP.
[newlisp.git] / guiserver / java / ImageButtonWidget.java
blob2b36d1f98792956bd07f837486764a80d926a4c4
1 //
2 // ImageButtonWidget.java
3 // guiserver
4 //
5 // Created by Lutz Mueller on 5/22/07.
6 //
7 //
8 // Copyright (C) 2007 Lutz Mueller
9 //
10 // This program is free software: you can redistribute it and/or modify
11 // it under the terms of the GNU General Public License as published by
12 // the Free Software Foundation, either version 3 of the License, or
13 // (at your option) any later version.
15 // This program is distributed in the hope that it will be useful,
16 // but WITHOUT ANY WARRANTY; without even the implied warranty of
17 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 // GNU General Public License for more details.
20 // You should have received a copy of the GNU General Public License
21 // along with this program. If not, see <http://www.gnu.org/licenses/>.
25 import java.awt.*;
26 import java.awt.event.*;
27 import javax.swing.*;
28 import java.util.*;
30 public class ImageButtonWidget extends aButton {
32 @SuppressWarnings("unchecked")
33 public ImageButtonWidget(StringTokenizer params)
35 int width = 32;
36 int height = 32;
38 abutton = new JButton();
39 jcomponent = abutton;
40 component = abutton;
41 container = abutton;
43 id = params.nextToken();
44 action = params.nextToken();
46 setIconFromPath(Base64Coder.decodeString(params.nextToken()));
48 if(params.hasMoreTokens())
49 setPressedIconFromPath(Base64Coder.decodeString(params.nextToken()));
50 else
51 abutton.setPressedIcon(new ImageIcon(Toolkit.getDefaultToolkit().getImage(getClass().getResource("/images/pressedbutton32.png"))));
54 if(params.hasMoreTokens())
56 width = Integer.parseInt(params.nextToken());
57 height = Integer.parseInt(params.nextToken());
60 abutton.setPreferredSize(new Dimension(width, height));
62 abutton.setBorder(BorderFactory.createEmptyBorder());
64 gsObject.widgets.put(id, this);
66 ActionListener listener = new ActionListener() {
67 public void actionPerformed(ActionEvent e)
69 if(action != null)
71 guiserver.out.println("("+ action + " \"" + id + "\")");
72 guiserver.out.flush();
77 abutton.addActionListener(listener);
81 public void setIconFromPath(String path)
83 abutton.setIcon(guiserver.getIconFromPath(path, this.getClass()));
86 public void setPressedIconFromPath(String path)
88 abutton.setPressedIcon(guiserver.getIconFromPath(path, this.getClass()));
94 // eof //