Main Page | Packages | Class Hierarchy | Alphabetical List | Class List | File List | Class Members | Related Pages

FirstClassEdit.java

Go to the documentation of this file.
00001 
00058 package com.arcle.rmt.j2se.swing.vc.rqml;
00059 
00060 import javax.swing.*;
00061 
00062 import java.util.List;
00063 import java.util.Observable;
00064 import java.awt.Window;
00065 import java.awt.event.ActionEvent;
00066 import com.arcle.rmt.j2se.swing.ui.Form;
00067 import com.arcle.rmt.j2se.swing.ui.View;
00068 import com.arcle.rmt.j2se.swing.ui.MoreSwingUtilities;
00069 import com.arcle.rmt.j2se.swing.vc.ElementEdit;
00070 import com.arcle.rmt.j2se.model.RQMLDocument;
00071 import com.arcle.rmt.j2se.model.RQMLDocumentUpdateEvent;
00072 import com.arcle.rmt.rqml.RQMLFirstClass;
00073 
00084 public class FirstClassEdit extends ElementEdit {
00088     protected FirstClassEdit(RQMLFirstClass elem) {
00089         if (elem == null) {
00090             throw new IllegalArgumentException("Parameter 'elem' cannot be null.");
00091         }
00092         _elem = elem;
00093     }
00094 
00095     //-----------------------------------------------------------------------
00096     //
00097 
00098     public void update(Observable src, Object param) {
00099         final FirstClassEdit self = this;
00100         if (param instanceof RQMLDocumentUpdateEvent) {
00101             RQMLDocumentUpdateEvent evt = (RQMLDocumentUpdateEvent) param;
00102             if (evt.getElement() == getElement()) {
00103                 switch (evt.getEventType()) {
00104                 case RQMLDocumentUpdateEvent.ET_DELETING_ELEMENT:
00105                     // our element is being deleted, close ourself.
00106                     removeAll();
00107                     invalidate();
00108 
00109                     src.deleteObserver(this);
00110                     setDocument(null);
00111                     setDead(true);
00112                     SwingUtilities.invokeLater(new Runnable() {
00113                         public void run() {
00114                             //dispose();
00115                             //MoreSwingUtilities.removeFromParent(self);
00116                             MoreSwingUtilities.disposeImmediateParent(self);
00117                         }
00118                     });
00119 
00120                     break;
00121                 }
00122             }
00123         } else {
00124             super.update(src, param);
00125         }
00126     }
00127 
00134     protected List createPanels() {
00135         List panels = createList();
00136         RQMLFirstClass elem = getElement();
00137         panels.add(new GeneralAttributes1(elem));
00138         panels.add(new GeneralAttributes2(elem));
00139         return panels;
00140     }
00141 
00142     //-----------------------------------------------------------------------
00143     // Accessor Methods
00144 
00148     protected RQMLFirstClass getElement() {
00149         return _elem;
00150     }
00151 
00152     //-----------------------------------------------------------------------
00153     // Factory methods
00154 
00158     protected Action createDeleteElementAction() {
00159         return new DeleteElementAction();
00160     }
00161 
00162     //-----------------------------------------------------------------------
00163     // Member Variables
00164 
00168     private RQMLFirstClass _elem;
00169 
00170     //-----------------------------------------------------------------------
00171     // Action classes
00172 
00176     protected class DeleteElementAction extends AbstractAction {
00177         public DeleteElementAction() {
00178             super("Delete");
00179         }
00180 
00181         public void actionPerformed(ActionEvent e) {
00182             int result = JOptionPane.showConfirmDialog(FirstClassEdit.this,
00183                 "Do you really want to delete the element? This cannot be undone.",
00184                 "Delete Element",
00185                 JOptionPane.YES_NO_OPTION,
00186                 JOptionPane.QUESTION_MESSAGE);
00187             if (result == JOptionPane.YES_OPTION) {
00188                 RQMLDocument doc = (RQMLDocument) getDocument();
00189                 RQMLFirstClass elem = getElement();
00190                 doc.deleteElement(elem);
00191             }
00192         }
00193     }
00194 }

Generated on Fri Jun 18 19:51:20 2004 for Arcle Rambutan by doxygen 1.3.5