home *** CD-ROM | disk | FTP | other *** search
/ PC Pro 2003 March / DPPCPRO0303.ISO / Components / Microsoft ASP / _SETUP.1 / ASPWizard.jar / asp / wizard / WizardViewSubDbQueryJoin.class (.txt) < prev    next >
Encoding:
Java Class File  |  1998-11-20  |  7.5 KB  |  193 lines

  1. package asp.wizard;
  2.  
  3. import asp.netobjects.nfx.ui.OrderedListModel;
  4. import asp.netobjects.nfx.wizard.WizardPageView;
  5. import asp.util.ResourceUtil;
  6. import asp.wizard.util.UiUtil;
  7. import com.sun.java.swing.DefaultListModel;
  8. import com.sun.java.swing.JComboBox;
  9. import com.sun.java.swing.JComponent;
  10. import com.sun.java.swing.JList;
  11. import com.sun.java.swing.ListModel;
  12. import java.awt.Container;
  13. import java.util.Vector;
  14.  
  15. public class WizardViewSubDbQueryJoin extends WizardViewAbstract {
  16.    private static WizardViewAbstract _instance = null;
  17.    private WVPanelDbQueryJoin _mainPanel;
  18.    private Vector _joins = new Vector();
  19.    private boolean _updatingLhsTableComboBox = false;
  20.    private boolean _updatingRhsTableComboBox = false;
  21.    // $FF: synthetic field
  22.    static Class class$asp$wizard$WVPanelDbQueryJoin;
  23.  
  24.    public static WizardViewAbstract getInstance() {
  25.       if (_instance == null) {
  26.          _instance = new WizardViewSubDbQueryJoin();
  27.       }
  28.  
  29.       return _instance;
  30.    }
  31.  
  32.    protected void createMainPanel() {
  33.       this._mainPanel = new WVPanelDbQueryJoin();
  34.       this.initListeners();
  35.    }
  36.  
  37.    public WVPanelBase getMainPanel() {
  38.       return this._mainPanel;
  39.    }
  40.  
  41.    protected void initListeners() {
  42.       this._mainPanel._btnAddJoin.addActionListener(new 1(this));
  43.       this._mainPanel._cboLhsTables.addItemListener(new 2(this));
  44.       this._mainPanel._cboRhsTables.addItemListener(new 3(this));
  45.       this._mainPanel._btnRemoveJoin.addActionListener(new 4(this));
  46.    }
  47.  
  48.    protected void addJoin() {
  49.       String strSrcTable = (String)this._mainPanel._cboLhsTables.getSelectedItem();
  50.       String strSrcField = (String)this._mainPanel._lboLhsFields.getSelectedValue();
  51.       String strDstTable = (String)this._mainPanel._cboRhsTables.getSelectedItem();
  52.       String strDstField = (String)this._mainPanel._lboRhsFields.getSelectedValue();
  53.  
  54.       for(int i = 0; i < this._joins.size(); ++i) {
  55.          SubDBQueryData.JoinOb o = (SubDBQueryData.JoinOb)this._joins.elementAt(i);
  56.          if (o.getSrcTable().compareTo(strSrcTable) == 0 && o.getSrcField().compareTo(strSrcField) == 0 && o.getDstTable().compareTo(strDstTable) == 0 && o.getDstField().compareTo(strDstField) == 0) {
  57.             String msg = ResourceUtil.getResourceString("asp.wizard.res", class$asp$wizard$WVPanelDbQueryJoin != null ? class$asp$wizard$WVPanelDbQueryJoin : (class$asp$wizard$WVPanelDbQueryJoin = class$("asp.wizard.WVPanelDbQueryJoin")), "err.joinexists");
  58.             AspWizardExceptionHandler.showMessage(0, msg);
  59.             return;
  60.          }
  61.       }
  62.  
  63.       if (strSrcTable != null && strSrcField != null && strDstTable != null && strDstField != null) {
  64.          if (strSrcTable.compareTo(strDstTable) == 0) {
  65.             String msg = ResourceUtil.getResourceString("asp.wizard.res", class$asp$wizard$WVPanelDbQueryJoin != null ? class$asp$wizard$WVPanelDbQueryJoin : (class$asp$wizard$WVPanelDbQueryJoin = class$("asp.wizard.WVPanelDbQueryJoin")), "err.joindifftables");
  66.             AspWizardExceptionHandler.showMessage(0, msg);
  67.          } else {
  68.             SubDBQueryData data = ((WizardSubDbQuery)((WizardPageView)this).getModel().getWizard()).getData();
  69.             SubDBQueryData.JoinOb newJoin = data.createJoinOb(strSrcTable, strSrcField, strDstTable, strDstField);
  70.             this._joins.addElement(newJoin);
  71.             OrderedListModel olm = (OrderedListModel)this._mainPanel._lboJoins.getModel();
  72.             olm.addElement(newJoin.getText());
  73.          }
  74.       } else {
  75.          String msg = ResourceUtil.getResourceString("asp.wizard.res", class$asp$wizard$WVPanelDbQueryJoin != null ? class$asp$wizard$WVPanelDbQueryJoin : (class$asp$wizard$WVPanelDbQueryJoin = class$("asp.wizard.WVPanelDbQueryJoin")), "err.joinincomplete");
  76.          AspWizardExceptionHandler.showMessage(0, msg);
  77.       }
  78.    }
  79.  
  80.    protected void removeJoin() {
  81.       int[] selIndices = this._mainPanel._lboJoins.getSelectedIndices();
  82.       if (selIndices != null && selIndices.length > 0) {
  83.          OrderedListModel olm = (OrderedListModel)this._mainPanel._lboJoins.getModel();
  84.          int delCount = 0;
  85.  
  86.          for(int i = 0; i < selIndices.length; ++i) {
  87.             olm.removeElementAt(selIndices[i] - delCount);
  88.             this._joins.removeElementAt(selIndices[i] - delCount);
  89.             ++delCount;
  90.          }
  91.  
  92.       }
  93.    }
  94.  
  95.    public Vector getJoins() {
  96.       return this._joins;
  97.    }
  98.  
  99.    public void setJoins(Vector joins) {
  100.       OrderedListModel olm = (OrderedListModel)this._mainPanel._lboJoins.getModel();
  101.       ((DefaultListModel)olm).clear();
  102.       this._joins.removeAllElements();
  103.  
  104.       for(int i = 0; i < joins.size(); ++i) {
  105.          SubDBQueryData.JoinOb o = (SubDBQueryData.JoinOb)joins.elementAt(i);
  106.          olm.addElement(o.getText());
  107.          this._joins.addElement(o.cloneJoin());
  108.       }
  109.  
  110.    }
  111.  
  112.    public void setLhsTableComboBoxModel(OrderedListModel comboModel) {
  113.       this._updatingLhsTableComboBox = true;
  114.       JComboBox comboBox = this._mainPanel._cboLhsTables;
  115.  
  116.       try {
  117.          UiUtil.populateCombo(comboBox, comboModel);
  118.          if (((DefaultListModel)comboModel).getSize() > 0) {
  119.             comboBox.setSelectedIndex(0);
  120.          }
  121.       } finally {
  122.          this._updatingLhsTableComboBox = false;
  123.       }
  124.  
  125.    }
  126.  
  127.    public void setRhsTableComboBoxModel(OrderedListModel comboModel) {
  128.       this._updatingRhsTableComboBox = true;
  129.       JComboBox comboBox = this._mainPanel._cboRhsTables;
  130.  
  131.       try {
  132.          UiUtil.populateCombo(comboBox, comboModel);
  133.          if (((DefaultListModel)comboModel).getSize() > 0) {
  134.             comboBox.setSelectedIndex(1);
  135.          }
  136.       } finally {
  137.          this._updatingRhsTableComboBox = false;
  138.       }
  139.  
  140.    }
  141.  
  142.    private void setFieldListModel(JList list, ListModel lm) {
  143.       list.setModel(lm);
  144.       ((Container)list).invalidate();
  145.       Container rootContainer = ((JComponent)list).getTopLevelAncestor();
  146.       if (rootContainer != null) {
  147.          rootContainer.validate();
  148.       }
  149.  
  150.       if (lm.getSize() > 0) {
  151.          list.setSelectedIndex(0);
  152.       }
  153.  
  154.    }
  155.  
  156.    public void setLhsFieldListModel(ListModel lm) {
  157.       JList list = this._mainPanel._lboLhsFields;
  158.       this.setFieldListModel(list, lm);
  159.    }
  160.  
  161.    public void setRhsFieldListModel(ListModel lm) {
  162.       JList list = this._mainPanel._lboRhsFields;
  163.       this.setFieldListModel(list, lm);
  164.    }
  165.  
  166.    public String getLhsSelectedTable() {
  167.       return this._mainPanel._cboLhsTables.getSelectedItem().toString();
  168.    }
  169.  
  170.    public String getRhsSelectedTable() {
  171.       return this._mainPanel._cboRhsTables.getSelectedItem().toString();
  172.    }
  173.  
  174.    // $FF: synthetic method
  175.    static boolean access$0(WizardViewSubDbQueryJoin $0) {
  176.       return $0._updatingLhsTableComboBox;
  177.    }
  178.  
  179.    // $FF: synthetic method
  180.    static boolean access$1(WizardViewSubDbQueryJoin $0) {
  181.       return $0._updatingRhsTableComboBox;
  182.    }
  183.  
  184.    // $FF: synthetic method
  185.    static Class class$(String class$) {
  186.       try {
  187.          return Class.forName(class$);
  188.       } catch (ClassNotFoundException forName) {
  189.          throw new NoClassDefFoundError(((Throwable)forName).getMessage());
  190.       }
  191.    }
  192. }
  193.