1 /***
2 *
3 * The owl-s matcher software is subject to the GNU Lesser General
4 * Public License Version 2.1 (the "License"). You may not copy or use this
5 * file, in either source code or executable form, except in compliance
6 * with the License. You may obtain a copy of the License at
7 * http://www.fsf.org/licenses/lgpl.txt or http://www.opensource.org/.
8 *
9 * Software distributed under the License is distributed on an "AS IS"
10 * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied without
11 * even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
12 * PURPOSE. See the License for the specific language governing rights and
13 * limitations under the License.
14 *
15 * You should have received a copy of the GNU Lesser General Public
16 * License along with this distribution; if not, write to the
17 *
18 * Free Software Foundation, Inc.,
19 * 59 Temple Place, Suite 330,
20 * Boston, MA 02111-1307 USA
21 *
22 * Copyright (C) 2003-2004
23 * TU Berlin, FG IVS
24 * Stefan Tang,
25 * Christoph Liebetruth,
26 * Michael C. Jaeger,
27 *
28 * More information available at http://ivs.tu-berlin.de/
29 *
30 * $Id$
31 *
32 */
33 package de.tuberlin.ivs.owl.gui;
34
35 import java.awt.*;
36 import java.awt.event.*;
37 import javax.swing.*;
38 import java.io.PrintStream;
39 import de.tuberlin.ivs.owl.matching.*;
40 import de.tuberlin.ivs.owl.service.*;
41 import java.net.*;
42
43 /***
44 * The main window.
45 *
46 * @author Stefan Tang (steftang@stanford.edu), Christoph Liebetruth (christophl@voelcker.com)
47 * @version 1.1
48 */
49 public class MainFrame extends JFrame {
50
51
52
53
54 JPanel contentPane;
55 JMenuBar jMenuBar1 = new JMenuBar();
56 JMenu jMenuFile = new JMenu();
57 JMenuItem jMenuFileExit = new JMenuItem();
58 JMenu jMenuHelp = new JMenu();
59 JMenuItem jMenuHelpAbout = new JMenuItem();
60 JToolBar jToolBar = new JToolBar();
61 JButton openReqServiceButton = new JButton();
62 JButton openAdvServiceButton = new JButton();
63 JButton matchButton = new JButton();
64 ImageIcon image1;
65 ImageIcon image2;
66 ImageIcon image3;
67 ImageIcon image4;
68 BorderLayout borderLayout1 = new BorderLayout();
69 JMenuItem openReqServiceMenuItem = new JMenuItem();
70 JMenuItem openAdvServiceMenuItem = new JMenuItem();
71 JMenu jMenu1 = new JMenu();
72 JMenuItem matchMenuItem = new JMenuItem();
73 JPanel mainPanel = new JPanel();
74 JButton aboutButton = new JButton();
75 JPanel leftPanel = new JPanel();
76 JPanel rightPanel = new JPanel();
77 GridLayout gridLayout1 = new GridLayout();
78 GridLayout gridLayout2 = new GridLayout();
79 GridLayout gridLayout3 = new GridLayout();
80 JLabel jLabel1 = new JLabel();
81 JLabel jLabel2 = new JLabel();
82
83 /***
84 * The matching algorithm.
85 */
86 MatchingAlgorithm matchingAlgo;
87
88 /***
89 * The requested service.
90 */
91 Service requestedService = null;
92
93 /***
94 * The advertised service.
95 */
96 Service advertisedService = null;
97
98 /***
99 * The path to the requested service description.
100 */
101 URL reqServicePath = null;
102
103 /***
104 * The path to the advertised service description.
105 */
106 URL advServicePath = null;
107
108 /***
109 * The ID of the requested profile that will be matched.
110 */
111 String reqProfileID = null;
112
113 /***
114 * The ID of the advertised profile that will be matched.
115 */
116 String advProfileID = null;
117
118 /***
119 * Thread that displays the progress when either a service is loaded or
120 * two services are matched.
121 */
122 FrameThread frameThread = null;
123
124 /***
125 * The panel that will display the requested service once it's loaded.
126 */
127 ShowServicePanel reqServicePanel = null;
128
129 /***
130 * The panel that will display the advertised service once it's loaded.
131 */
132 ShowServicePanel advServicePanel = null;
133
134 /***
135 * The thread that will load a service.
136 */
137 LoadThread loadThread = null;
138
139 /***
140 * The thread that will match two services.
141 */
142 MatchThread matchThread = null;
143
144 /***
145 * The frame that displays the progess when a service is loaded.
146 */
147 LoadingServiceProgressDialog progressFrameLoad = null;
148
149 /***
150 * The frame that displays the progress when two services are parsed.
151 */
152 MatchingProgressDialog matchFrame = null;
153
154 /***
155 * Default constructor. Constructs the frame.
156 */
157 public MainFrame() {
158 enableEvents(AWTEvent.WINDOW_EVENT_MASK);
159 try {
160 jbInit();
161 }
162 catch(Exception e) {
163 e.printStackTrace();
164 }
165 }
166
167 /***
168 * Matches the two loaded services. Starts two threads: the frame thread that
169 * will display the progress and the thread that actually matches the services.
170 * @param profileDegree Minimal expected degree for profile matching.
171 * @param inputDegree Minimal expected degree for input parameter matching.
172 * @param outputDegree Minimal expected degree for output parameter matching.
173 */
174 public void match(int profileDegree, int inputDegree, int outputDegree) {
175 matchFrame = new MatchingProgressDialog(this,
176 "Matching services...", true,this);
177 MessageStream messageStream = new MessageStream(matchFrame);
178 PrintStream out = new PrintStream(messageStream,true);
179 matchThread = new MatchThread(reqServicePath,
180 reqServicePanel.getSelectedProfile(), advServicePath,advServicePanel.getSelectedProfile(),
181 profileDegree,inputDegree,outputDegree,this,out);
182 frameThread = new FrameThread(this,matchFrame);
183 frameThread.start();
184 matchThread.start();
185 }
186
187 /***
188 * Adds the panel that will display either the requested or advertised service.
189 * @param service The service that will be displayed in the panel/
190 * @param request true if the service is the requested service (panel will
191 * then appear in the left area), false if it is the advertised service (panel
192 * will appear in the right area).
193 * @param path The URL for the service. Needs to be passed on because the URL
194 * will be needed later on when the service will be matched.
195 */
196 public void addServicePanel(Service service, boolean request,URL path) {
197 if (request) {
198 requestedService = service;
199 reqServicePath = path;
200 reqServicePanel = new ShowServicePanel(service,request,this);
201 leftPanel.removeAll();
202 leftPanel.add(reqServicePanel);
203 leftPanel.repaint();
204 this.repaint();
205 } else {
206 advertisedService = service;
207 advServicePath = path;
208 advServicePanel = new ShowServicePanel(service,request,this);
209 rightPanel.removeAll();
210 rightPanel.add(advServicePanel);
211 rightPanel.repaint();
212 this.repaint();
213 }
214 }
215
216
217
218
219 private void jbInit() throws Exception {
220 image1 = new ImageIcon(de.tuberlin.ivs.owl.gui.MainFrame.class.getResource("openFile.png"));
221 image4 = new ImageIcon(de.tuberlin.ivs.owl.gui.MainFrame.class.getResource("openFile2.png"));
222 image2 = new ImageIcon(de.tuberlin.ivs.owl.gui.MainFrame.class.getResource("match.png"));
223 image3 = new ImageIcon(de.tuberlin.ivs.owl.gui.MainFrame.class.getResource("help.png"));
224 contentPane = (JPanel) this.getContentPane();
225 contentPane.setLayout(borderLayout1);
226 this.setSize(new Dimension(700, 500));
227 this.setTitle("OWL-S Matching Interface");
228 jMenuFile.setText("File");
229 jMenuFileExit.setText("Exit");
230 jMenuFileExit.addActionListener(new MainFrame_jMenuFileExit_ActionAdapter(this));
231 jMenuHelp.setText("Help");
232 jMenuHelpAbout.setText("About");
233 jMenuHelpAbout.addActionListener(new MainFrame_jMenuHelpAbout_ActionAdapter(this));
234 openReqServiceButton.setIcon(image1);
235 openReqServiceButton.addMouseListener(new MainFrame_openReqServiceButton_mouseAdapter(this));
236 openReqServiceButton.addActionListener(new MainFrame_openReqServiceButton_actionAdapter(this));
237 openReqServiceButton.setToolTipText("Open Requested Service");
238 openReqServiceButton.setBorderPainted(false);
239 openAdvServiceButton.setIcon(image4);
240 openAdvServiceButton.addMouseListener(new MainFrame_openAdvServiceButton_mouseAdapter(this));
241 openAdvServiceButton.addActionListener(new MainFrame_openAdvServiceButton_actionAdapter(this));
242 openAdvServiceButton.setToolTipText("Open Advertised Service");
243 openAdvServiceButton.setVerifyInputWhenFocusTarget(true);
244 openAdvServiceButton.setBorderPainted(false);
245 matchButton.setIcon(image2);
246 matchButton.addMouseListener(new MainFrame_matchButton_mouseAdapter(this));
247 matchButton.addActionListener(new MainFrame_matchButton_actionAdapter(this));
248 matchButton.setToolTipText("Match Selected Services");
249 matchButton.setBorderPainted(false);
250 openReqServiceMenuItem.setText("Open Requested Service");
251 openReqServiceMenuItem.addActionListener(new MainFrame_openReqServiceMenuItem_actionAdapter(this));
252 openAdvServiceMenuItem.setText("Open Advertised Service");
253 openAdvServiceMenuItem.addActionListener(new MainFrame_openAdvServiceMenuItem_actionAdapter(this));
254 jMenu1.setText("Match");
255 matchMenuItem.setText("Match");
256 matchMenuItem.addActionListener(new MainFrame_matchMenuItem_actionAdapter(this));
257 mainPanel.setLayout(gridLayout1);
258 aboutButton.setToolTipText("About");
259 aboutButton.setBorderPainted(false);
260 aboutButton.setIcon(image3);
261 aboutButton.setText("");
262 aboutButton.setText("");
263 aboutButton.addMouseListener(new MainFrame_aboutButton_mouseAdapter(this));
264 aboutButton.addActionListener(new MainFrame_aboutButton_actionAdapter(this));
265 jToolBar.setFloatable(false);
266 aboutButton.setBorderPainted(false);
267 mainPanel.setDebugGraphicsOptions(0);
268 leftPanel.setBorder(BorderFactory.createEtchedBorder());
269 leftPanel.setLayout(gridLayout2);
270 rightPanel.setBorder(BorderFactory.createEtchedBorder());
271 rightPanel.setLayout(gridLayout3);
272 jLabel1.setHorizontalAlignment(SwingConstants.CENTER);
273 jLabel1.setText("No requested service loaded.");
274 jLabel2.setRequestFocusEnabled(true);
275 jLabel2.setHorizontalAlignment(SwingConstants.CENTER);
276 jLabel2.setText("No advertised service loaded.");
277 jToolBar.add(openReqServiceButton);
278 jToolBar.add(openAdvServiceButton);
279 jToolBar.addSeparator();
280 jToolBar.add(matchButton);
281 jToolBar.addSeparator();
282 jMenuFile.add(openReqServiceMenuItem);
283 jMenuFile.add(openAdvServiceMenuItem);
284 jMenuFile.add(jMenuFileExit);
285 jMenuHelp.add(jMenuHelpAbout);
286 jMenuBar1.add(jMenuFile);
287 jMenuBar1.add(jMenu1);
288 jMenuBar1.add(jMenuHelp);
289 this.setJMenuBar(jMenuBar1);
290 contentPane.add(jToolBar, BorderLayout.NORTH);
291 contentPane.add(mainPanel, BorderLayout.CENTER);
292 mainPanel.add(leftPanel, null);
293 mainPanel.add(rightPanel, null);
294 jMenu1.add(matchMenuItem);
295 jToolBar.add(aboutButton, null);
296 leftPanel.add(jLabel1, null);
297 rightPanel.add(jLabel2, null);
298 }
299
300 public void jMenuFileExit_actionPerformed(ActionEvent e) {
301 System.exit(0);
302 }
303
304 public void jMenuHelpAbout_actionPerformed(ActionEvent e) {
305 MainFrame_AboutBox dlg = new MainFrame_AboutBox(this);
306 Dimension dlgSize = dlg.getPreferredSize();
307 Dimension frmSize = getSize();
308 Point loc = getLocation();
309 dlg.setLocation((frmSize.width - dlgSize.width) / 2 + loc.x, (frmSize.height - dlgSize.height) / 2 + loc.y);
310 dlg.setModal(true);
311 dlg.pack();
312 dlg.show();
313 }
314
315 protected void processWindowEvent(WindowEvent e) {
316 super.processWindowEvent(e);
317 if (e.getID() == WindowEvent.WINDOW_CLOSING) {
318 jMenuFileExit_actionPerformed(null);
319 }
320 }
321
322 /***
323 * Stops the thread that displays the progress when either a service is loaded
324 * or when two services are being matched.
325 */
326 public void stopFrameThread() {
327 frameThread.hideFrame();
328 }
329
330 /***
331 * Returns the frame that shows the progress when a service is loaded.
332 * @return The frame that currently shows the progress of the load procedure,
333 * null if the frame hasnt been initialized.
334 */
335 public LoadingServiceProgressDialog getLoadDialog() {
336 return progressFrameLoad;
337 }
338
339 /***
340 * Returns the frame that shows the progress when two services are parsed.
341 * @return The frame that currently shows the progress of the match procedure,
342 * null if the frame hasnt been initialized.
343 */
344 public MatchingProgressDialog getMatchProgressDialog() {
345 return matchFrame;
346 }
347
348 /***
349 * Loads a service. Initializes two threads: the one that parses the service \
350 * and the one that displays the progress.
351 * @param url The URL to the service that is to be loaded.
352 * @param request true if the service is the requested service, false if it is
353 * the advertised service.
354 */
355 public void loadService(URL url, boolean request) {
356 progressFrameLoad = new LoadingServiceProgressDialog(this,
357 "Loading service...", true,this);
358 MessageStream messageStream = new MessageStream(progressFrameLoad);
359 PrintStream out = new PrintStream(messageStream,true);
360 loadThread = new LoadThread(url,this,request,out);
361 frameThread = new FrameThread(this,progressFrameLoad);
362 loadThread.start();
363 frameThread.run();
364 }
365
366 /***
367 * Stops the thread that currently loads a service.
368 */
369 public void stopLoadThread() {
370 if (loadThread!=null) {
371 loadThread.suspend();
372 }
373 }
374
375 /***
376 * Stops the thread that currently matches two services.
377 */
378 public void stopMatchThread() {
379 if (matchThread!=null) {
380 matchThread.suspend();
381 }
382 }
383
384
385 void openReqServiceMenuItem_actionPerformed(ActionEvent e) {
386 OpenServiceDialog openReqServiceDiag = new OpenServiceDialog(this,"Open Requested Service",true,this,true);
387 Dimension dlgSize = openReqServiceDiag.getPreferredSize();
388 Dimension frmSize = getSize();
389 Point loc = getLocation();
390 openReqServiceDiag.setLocation((frmSize.width - dlgSize.width) / 2 + loc.x,
391 (frmSize.height - dlgSize.height) / 2 + loc.y);
392 openReqServiceDiag.show();
393 }
394
395
396 void matchMenuItem_actionPerformed(ActionEvent e) {
397 if (requestedService==null) {
398 JOptionPane.showMessageDialog(this,"Please load the requested service first.","Error",JOptionPane.WARNING_MESSAGE);
399 return;
400 }
401 if (advertisedService==null) {
402 JOptionPane.showMessageDialog(this,"Please load the advertised service first.","Error",JOptionPane.WARNING_MESSAGE);
403 return;
404 }
405 MatchDialog matchdiag = new MatchDialog(this,"Match Selected Services",true,this);
406 Dimension dlgSize = matchdiag.getPreferredSize();
407 Dimension frmSize = getSize();
408 Point loc = getLocation();
409 matchdiag.setLocation((frmSize.width - dlgSize.width) / 2 + loc.x, (frmSize.height - dlgSize.height) / 2 + loc.y);
410 matchdiag.show();
411 }
412
413
414 void openAdvServiceMenuItem_actionPerformed(ActionEvent e) {
415 OpenServiceDialog openAdvServiceDiag = new OpenServiceDialog(this,"Open Requested Service",true,this,false);
416 Dimension dlgSize = openAdvServiceDiag.getPreferredSize();
417 Dimension frmSize = getSize();
418 Point loc = getLocation();
419 openAdvServiceDiag.setLocation((frmSize.width - dlgSize.width) / 2 + loc.x,
420 (frmSize.height - dlgSize.height) / 2 + loc.y);
421 openAdvServiceDiag.show();
422 }
423
424
425 void openReqServiceButton_actionPerformed(ActionEvent e) {
426 OpenServiceDialog openReqServiceDiag = new OpenServiceDialog(this,"Open Requested Service",true,this,true);
427 Dimension dlgSize = openReqServiceDiag.getPreferredSize();
428 Dimension frmSize = getSize();
429 Point loc = getLocation();
430 openReqServiceDiag.setLocation((frmSize.width - dlgSize.width) / 2 + loc.x,
431 (frmSize.height - dlgSize.height) / 2 + loc.y);
432 openReqServiceDiag.show();
433 }
434
435
436 void openAdvServiceButton_actionPerformed(ActionEvent e) {
437 OpenServiceDialog openAdvServiceDiag = new OpenServiceDialog(this,"Open Requested Service",true,this,false);
438 Dimension dlgSize = openAdvServiceDiag.getPreferredSize();
439 Dimension frmSize = getSize();
440 Point loc = getLocation();
441 openAdvServiceDiag.setLocation((frmSize.width - dlgSize.width) / 2 + loc.x,
442 (frmSize.height - dlgSize.height) / 2 + loc.y);
443 openAdvServiceDiag.show();
444
445 }
446
447
448 void matchButton_actionPerformed(ActionEvent e) {
449 if (requestedService==null) {
450 JOptionPane.showMessageDialog(this,"Please load the requested service first.","Error",JOptionPane.WARNING_MESSAGE);
451 return;
452 }
453 if (advertisedService==null) {
454 JOptionPane.showMessageDialog(this,"Please load the advertised service first.","Error",JOptionPane.WARNING_MESSAGE);
455 return;
456 }
457 MatchDialog matchdiag = new MatchDialog(this,"Match Selected Services",true,this);
458 Dimension dlgSize = matchdiag.getPreferredSize();
459 Dimension frmSize = getSize();
460 Point loc = getLocation();
461 matchdiag.setLocation((frmSize.width - dlgSize.width) / 2 + loc.x, (frmSize.height - dlgSize.height) / 2 + loc.y);
462 matchdiag.show();
463 }
464
465
466 void aboutButton_actionPerformed(ActionEvent e) {
467 MainFrame_AboutBox dlg = new MainFrame_AboutBox(this);
468 Dimension dlgSize = dlg.getPreferredSize();
469 Dimension frmSize = getSize();
470 Point loc = getLocation();
471 dlg.setLocation((frmSize.width - dlgSize.width) / 2 + loc.x, (frmSize.height - dlgSize.height) / 2 + loc.y);
472 dlg.setModal(true);
473 dlg.pack();
474 dlg.show();
475 }
476
477
478 void openReqServiceButton_mouseExited(MouseEvent e) {
479 openReqServiceButton.setBorderPainted(false);
480 }
481
482
483 void openReqServiceButton_mouseEntered(MouseEvent e) {
484 openReqServiceButton.setBorderPainted(true);
485 }
486
487
488 void openAdvServiceButton_mouseEntered(MouseEvent e) {
489 openAdvServiceButton.setBorderPainted(true);
490 }
491
492
493 void openAdvServiceButton_mouseExited(MouseEvent e) {
494 openAdvServiceButton.setBorderPainted(false);
495 }
496
497
498 void matchButton_mouseExited(MouseEvent e) {
499 matchButton.setBorderPainted(false);
500 }
501
502
503 void matchButton_mouseEntered(MouseEvent e) {
504 matchButton.setBorderPainted(true);
505 }
506
507
508 void aboutButton_mouseExited(MouseEvent e) {
509 aboutButton.setBorderPainted(false);
510 }
511
512
513 void aboutButton_mouseEntered(MouseEvent e) {
514 aboutButton.setBorderPainted(true);
515 }
516 }
517
518
519
520
521 class MainFrame_jMenuFileExit_ActionAdapter implements ActionListener {
522 MainFrame adaptee;
523 MainFrame_jMenuFileExit_ActionAdapter(MainFrame adaptee) {
524 this.adaptee = adaptee;
525 }
526 public void actionPerformed(ActionEvent e) {
527 adaptee.jMenuFileExit_actionPerformed(e);
528 }
529 }
530 class MainFrame_jMenuHelpAbout_ActionAdapter implements ActionListener {
531 MainFrame adaptee;
532 MainFrame_jMenuHelpAbout_ActionAdapter(MainFrame adaptee) {
533 this.adaptee = adaptee;
534 }
535 public void actionPerformed(ActionEvent e) {
536 adaptee.jMenuHelpAbout_actionPerformed(e);
537 }
538 }
539 class MainFrame_openReqServiceMenuItem_actionAdapter implements java.awt.event.ActionListener {
540 MainFrame adaptee;
541 MainFrame_openReqServiceMenuItem_actionAdapter(MainFrame adaptee) {
542 this.adaptee = adaptee;
543 }
544 public void actionPerformed(ActionEvent e) {
545 adaptee.openReqServiceMenuItem_actionPerformed(e);
546 }
547 }
548 class MainFrame_matchMenuItem_actionAdapter implements java.awt.event.ActionListener {
549 MainFrame adaptee;
550 MainFrame_matchMenuItem_actionAdapter(MainFrame adaptee) {
551 this.adaptee = adaptee;
552 }
553 public void actionPerformed(ActionEvent e) {
554 adaptee.matchMenuItem_actionPerformed(e);
555 }
556 }
557 class MainFrame_openAdvServiceMenuItem_actionAdapter implements java.awt.event.ActionListener {
558 MainFrame adaptee;
559 MainFrame_openAdvServiceMenuItem_actionAdapter(MainFrame adaptee) {
560 this.adaptee = adaptee;
561 }
562 public void actionPerformed(ActionEvent e) {
563 adaptee.openAdvServiceMenuItem_actionPerformed(e);
564 }
565 }
566 class MainFrame_openReqServiceButton_actionAdapter implements java.awt.event.ActionListener {
567 MainFrame adaptee;
568 MainFrame_openReqServiceButton_actionAdapter(MainFrame adaptee) {
569 this.adaptee = adaptee;
570 }
571 public void actionPerformed(ActionEvent e) {
572 adaptee.openReqServiceButton_actionPerformed(e);
573 }
574 }
575 class MainFrame_openAdvServiceButton_actionAdapter implements java.awt.event.ActionListener {
576 MainFrame adaptee;
577 MainFrame_openAdvServiceButton_actionAdapter(MainFrame adaptee) {
578 this.adaptee = adaptee;
579 }
580 public void actionPerformed(ActionEvent e) {
581 adaptee.openAdvServiceButton_actionPerformed(e);
582 }
583 }
584 class MainFrame_matchButton_actionAdapter implements java.awt.event.ActionListener {
585 MainFrame adaptee;
586 MainFrame_matchButton_actionAdapter(MainFrame adaptee) {
587 this.adaptee = adaptee;
588 }
589 public void actionPerformed(ActionEvent e) {
590 adaptee.matchButton_actionPerformed(e);
591 }
592 }
593 class MainFrame_aboutButton_actionAdapter implements java.awt.event.ActionListener {
594 MainFrame adaptee;
595 MainFrame_aboutButton_actionAdapter(MainFrame adaptee) {
596 this.adaptee = adaptee;
597 }
598 public void actionPerformed(ActionEvent e) {
599 adaptee.aboutButton_actionPerformed(e);
600 }
601 }
602 class MainFrame_openReqServiceButton_mouseAdapter extends java.awt.event.MouseAdapter {
603 MainFrame adaptee;
604 MainFrame_openReqServiceButton_mouseAdapter(MainFrame adaptee) {
605 this.adaptee = adaptee;
606 }
607 public void mouseExited(MouseEvent e) {
608 adaptee.openReqServiceButton_mouseExited(e);
609 }
610 public void mouseEntered(MouseEvent e) {
611 adaptee.openReqServiceButton_mouseEntered(e);
612 }
613 }
614 class MainFrame_openAdvServiceButton_mouseAdapter extends java.awt.event.MouseAdapter {
615 MainFrame adaptee;
616 MainFrame_openAdvServiceButton_mouseAdapter(MainFrame adaptee) {
617 this.adaptee = adaptee;
618 }
619 public void mouseEntered(MouseEvent e) {
620 adaptee.openAdvServiceButton_mouseEntered(e);
621 }
622 public void mouseExited(MouseEvent e) {
623 adaptee.openAdvServiceButton_mouseExited(e);
624 }
625 }
626 class MainFrame_matchButton_mouseAdapter extends java.awt.event.MouseAdapter {
627 MainFrame adaptee;
628 MainFrame_matchButton_mouseAdapter(MainFrame adaptee) {
629 this.adaptee = adaptee;
630 }
631 public void mouseExited(MouseEvent e) {
632 adaptee.matchButton_mouseExited(e);
633 }
634 public void mouseEntered(MouseEvent e) {
635 adaptee.matchButton_mouseEntered(e);
636 }
637 }
638 class MainFrame_aboutButton_mouseAdapter extends java.awt.event.MouseAdapter {
639 MainFrame adaptee;
640 MainFrame_aboutButton_mouseAdapter(MainFrame adaptee) {
641 this.adaptee = adaptee;
642 }
643 public void mouseExited(MouseEvent e) {
644 adaptee.aboutButton_mouseExited(e);
645 }
646 public void mouseEntered(MouseEvent e) {
647 adaptee.aboutButton_mouseEntered(e);
648 }
649 }