OpenCores
URL https://opencores.org/ocsvn/leros/leros/trunk

Subversion Repositories leros

[/] [leros/] [trunk/] [java/] [tools/] [src/] [leros/] [sim/] [QuickIO.java] - Blame information for rev 4

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 4 martin
package leros.sim;
2
/*
3
 * @(#)QuickieIO.java
4
 */
5
 
6
import java.awt.BorderLayout;
7
import java.awt.Color;
8
import java.awt.Container;
9
import java.awt.Graphics;
10
import java.awt.Image;
11
import java.awt.Rectangle;
12
import java.awt.event.MouseListener;
13
import java.io.FileInputStream;
14
 
15
import javax.imageio.ImageIO;
16
import javax.swing.JFrame;
17
import javax.swing.JPanel;
18
import javax.swing.WindowConstants;
19
 
20
/**
21
 * Quick IO TestBoard for working with basic IO examples
22
 *
23
 * <p>
24
 * <b>NOTES:</b><br>
25
 * <ul>
26
 * <li>Version 04/08/2011 ( Created ) </li>
27
 * </ul>
28
 *
29
 * @author James
30
 * @see
31
 */
32
public class QuickIO extends JFrame implements ILerosIO {
33
 
34
    Image ledON;
35
    Image ledOFF;
36
    Image buttonON;
37
    Image buttonOFF;
38
    Image logo;
39
    Image icon;
40
 
41
 
42
    Rectangle[] buttons;
43
    boolean[] pressed;
44
    boolean[] LEDS;
45
 
46
    public QuickIO() {
47
        super("QuickIO Muvium leros Emulator");
48
 
49
        final Container c =  getContentPane();
50
 
51
        setLayout(new BorderLayout());
52
        pressed = new boolean[8];
53
        LEDS = new boolean[8];
54
 
55
        add( "Center",        new DrawPanel()  );
56
        setBackground(Color.white);
57
 
58
        super.setResizable(false);
59
        setSize(380, 320);
60
 
61
        setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
62
 
63
        createImages();
64
 
65
    }
66
 
67
    //Address 0 to 8 set the LEDS
68
    public void write(int addr, int data){
69
        if( addr >= 0 && addr < 8 ){
70
                LEDS[7-addr] = (data!=0);
71
                repaint();
72
        }
73
    }
74
 
75
    //Address 0 to 8 read the buttons
76
    public int read(int addr) {
77
        if( addr >= 0 && addr < 8 ){
78
                if(  pressed[7-addr] ){
79
                        return 1;
80
                }else{
81
                        return 0;
82
                }
83
        }
84
        return 0;
85
    }
86
 
87
    private class DrawPanel extends JPanel implements MouseListener{
88
        public DrawPanel(){
89
            setDoubleBuffered(true);
90
            setBackground(Color.white);
91
 
92
            addMouseListener(this);
93
        }
94
 
95
     // Method descriptor #12 (Ljava/awt/event/MouseEvent;)V
96
        public void mouseClicked(java.awt.event.MouseEvent arg0){
97
 
98
        }
99
 
100
        // Method descriptor #12 (Ljava/awt/event/MouseEvent;)V
101
        public void mousePressed(java.awt.event.MouseEvent arg0){
102
            for( int i = 0; i < 8; i++ ){
103
                if( buttons[i].contains( arg0.getX(), arg0.getY())  ){
104
                    pressed[i]=true;
105
 
106
                }
107
            }
108
            repaint() ;
109
        }
110
 
111
        // Method descriptor #12 (Ljava/awt/event/MouseEvent;)V
112
        public void mouseReleased(java.awt.event.MouseEvent arg0){
113
            for( int i = 0; i < 8; i++ ){
114
                if( buttons[i].contains( arg0.getX(), arg0.getY())  ){
115
                    pressed[i]=false;
116
                }
117
            }
118
            repaint() ;
119
        }
120
 
121
        // Method descriptor #12 (Ljava/awt/event/MouseEvent;)V
122
        public void mouseEntered(java.awt.event.MouseEvent arg0){
123
 
124
        }
125
 
126
        // Method descriptor #12 (Ljava/awt/event/MouseEvent;)V
127
        public void mouseExited(java.awt.event.MouseEvent arg0){
128
 
129
        }
130
 
131
        public void paint( Graphics g){
132
            if( ledON == null ){
133
                g.setColor(Color.red);
134
                g.drawLine(0,0,100,100);
135
                return;
136
            }
137
             int width = getWidth();
138
             int height = getHeight();
139
             g.setColor(Color.white);
140
             g.fillRect(0, 0, width, height);
141
             g.setColor(Color.black);
142
             g.drawImage(logo, (width-logo.getWidth(null))/2 ,(height-logo.getHeight(null))/2,  null );
143
 
144
 
145
            int w= ledON.getWidth(null)/2;
146
            int h= ledON.getHeight( null)/2;
147
 
148
            int left  = 20;
149
            buttons = new Rectangle[ 8 ];
150
            for( int i = 0; i < 8; i++ ){
151
                int top   = 20;
152
                //Draw LEDS
153
                if( LEDS[i]  ){
154
                    g.drawImage(ledOFF, left ,top,w,h, null );
155
                }else{
156
                    g.drawImage(ledON, left ,top,w,h, null );
157
                }
158
                g.drawString("D"+ String.valueOf(7-i) , left + 10 , top + h );
159
 
160
 
161
                  top   = 200;
162
                //Draw Buttons
163
                if(pressed[i]){
164
                    g.drawImage(buttonON, left ,top,35,35, null );
165
                }else{
166
                    g.drawImage(buttonOFF, left ,top,35,35, null );
167
                }
168
                g.drawString("B"+ String.valueOf(7-i) , left + 10 , top + 50);
169
                buttons[i] = new Rectangle( left,top,35,35);
170
 
171
                left+=( w + 5 );
172
            }
173
 
174
        }
175
    }
176
 
177
 
178
    private void createImages(){
179
 
180
          buttonON      = getImage("ButtonON.png");
181
          buttonOFF     = getImage("ButtonOFF.png");
182
          ledON         = getImage("LedON.png");
183
          ledOFF        = getImage("LedOFF.png");
184
          logo          = getImage("MuviumLOGO.png");
185
          icon          = getImage("MuviumICON16.png");
186
 
187
          setIconImage(icon);
188
 
189
 
190
    }
191
 
192
    public Image getImage( String fileName )
193
    {
194
         try
195
         {
196
 
197
            return ImageIO.read( ClassLoader.getSystemResourceAsStream("images/" + fileName  ) );
198
         }
199
         catch(Exception e)
200
         {
201
             System.out.println("NO IMAGES!" + fileName);
202
         }
203
 
204
         try
205
         {
206
 
207
            return ImageIO.read( new FileInputStream( "C:/eclipse/workspace-leros/Leros-API/images/" + fileName  ));
208
         }
209
         catch(Exception e)
210
         {
211
             System.out.println("NO IMAGES!" + fileName);
212
         }
213
 
214
         return null;
215
    }
216
 
217
 
218
    public static void main( String[] args ){
219
         new QuickIO().setVisible(true);
220
    }
221
}

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.