View Javadoc

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    // ------- AUTO-GENERATED FIELDS --------
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   // Initializes this frame.
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   //File | Exit action performed
300   public void jMenuFileExit_actionPerformed(ActionEvent e) {
301     System.exit(0);
302   }
303   //Help | About action performed
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   //Overridden so we can exit when window is closed
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   // Is called when the user selects the 'open requested service' menu item.
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   // Is called when the user selects the 'match' menu item.
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   // Is called when the user selects the 'open advertised service' menu item.
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   // Is called when the user clicks the 'open requested service' button.
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   // Is called when the user clicks the 'open advertised service' button.
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   // Is called when the user clicks the 'match' button.
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   // Is called when the user clicks the 'about' button.
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   // Is called when the mouse exists the 'open requested service' button.
478   void openReqServiceButton_mouseExited(MouseEvent e) {
479     openReqServiceButton.setBorderPainted(false);
480   }
481 
482   // Is called when the mouse enters the 'open requested service' button.
483   void openReqServiceButton_mouseEntered(MouseEvent e) {
484     openReqServiceButton.setBorderPainted(true);
485   }
486 
487   // Is called when the mouse enters the 'open advertised service' button.
488   void openAdvServiceButton_mouseEntered(MouseEvent e) {
489     openAdvServiceButton.setBorderPainted(true);
490   }
491 
492   // Is called when the mouse exists the 'open advertised service' button.
493   void openAdvServiceButton_mouseExited(MouseEvent e) {
494     openAdvServiceButton.setBorderPainted(false);
495   }
496 
497   // Is called when the mouse exists the 'match' button.
498   void matchButton_mouseExited(MouseEvent e) {
499     matchButton.setBorderPainted(false);
500   }
501 
502   // Is called when the mouse enters the 'match' button.
503   void matchButton_mouseEntered(MouseEvent e) {
504     matchButton.setBorderPainted(true);
505   }
506 
507   // Is called when the mouse exists the 'about' button.
508   void aboutButton_mouseExited(MouseEvent e) {
509     aboutButton.setBorderPainted(false);
510   }
511 
512   // Is called when the mouse enters the 'match' button.
513   void aboutButton_mouseEntered(MouseEvent e) {
514     aboutButton.setBorderPainted(true);
515   }
516 }
517 
518 // -----------------------------------------
519 // ------- AUTO GENERATED CLASSES ----------
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 }