001: /*
002: * $RCSfile: AbstractVAIProductAction.java,v $
003: * @modification $Date: 2001/09/28 19:31:19 $
004: * @version $Id: AbstractVAIProductAction.java,v 1.1 2001/09/28 19:31:19 hfalk Exp $
005: *
006: */
007:
008: package com.memoire.vainstall.builder.action;
009:
010: import com.memoire.vainstall.builder.VAIProductController;
011: import com.memoire.vainstall.builder.VAIProductModel;
012: import com.memoire.vainstall.builder.util.AbstractVAIProductNode;
013:
014: import javax.swing.AbstractAction;
015: import javax.swing.JTree;
016:
017: /**
018: * This is an abstract class that extends the AbstractAction class
019: * with the knowledge of the VAIProductController and VAIProductModel.
020: *
021: * This class is single threaded and subclasses only have to implement
022: * the runnit method.
023: *
024: * @see javax.swing.AbstractAction
025: * @see com.memoire.vainstall.builder.VAIProductController
026: * @see com.memoire.vainstall.builder.VAIProductModel
027: *
028: * @author Henrik Falk
029: * @version $Id: AbstractVAIProductAction.java,v 1.1 2001/09/28 19:31:19 hfalk Exp $
030: */
031: public abstract class AbstractVAIProductAction extends AbstractAction {
032:
033: /**
034: * The product controller
035: */
036: VAIProductController controller;
037:
038: /**
039: * The product data model
040: */
041: VAIProductModel model;
042:
043: /**
044: * Default constructor
045: */
046: public AbstractVAIProductAction() {
047: super ();
048: }
049:
050: /**
051: * actionPerformed
052: * @param evt java.awt.event.ActionEvent
053: */
054: public void actionPerformed(java.awt.event.ActionEvent evt) {
055: runnit();
056: }
057:
058: /**
059: * This method must be implemented by subclasses
060: */
061: public abstract void runnit();
062:
063: /**
064: * Initializes this action
065: * @param controller VAIProductController
066: */
067: public void initialize(VAIProductController controller) {
068: this .controller = controller;
069: this .model = controller.getModel();
070: }
071:
072: /**
073: * Returns the controller
074: * @return a VAIProductController
075: */
076: protected VAIProductController getController() {
077: return controller;
078: }
079:
080: /**
081: * Returns the model
082: * @return a VAIProductModel
083: */
084: protected VAIProductModel getModel() {
085: return model;
086: }
087:
088: protected AbstractVAIProductNode getRootNode() {
089: if (controller == null) {
090: return null;
091: }
092: return controller.getRootNode();
093: }
094:
095: protected JTree getTree() {
096: if (controller == null) {
097: return null;
098: }
099: return controller.getFrame().getTree();
100: }
101: }
|