home *** CD-ROM | disk | FTP | other *** search
/ Computer Shopper 183 / dpcs0503.iso / Components / Microsoft ASP / _SETUP.1 / ASPWizard.jar / asp / wizard / WizardModelDbList2.class (.txt) < prev    next >
Encoding:
Java Class File  |  1998-11-20  |  11.6 KB  |  342 lines

  1. package asp.wizard;
  2.  
  3. import asp.netobjects.nfx.util.ExceptionHandler;
  4. import asp.netobjects.nfx.util.ExternalError;
  5. import asp.netobjects.nfx.util.InternalError;
  6. import asp.netobjects.nfx.wizard.Wizard;
  7. import asp.netobjects.nfx.wizard.WizardPage;
  8. import asp.netobjects.nfx.wizard.WizardPageView;
  9. import asp.util.ResourceUtil;
  10. import asp.wizard.def.DefList;
  11. import asp.wizard.def.DefQuery;
  12. import asp.wizard.util.UiUtil;
  13. import com.sun.java.swing.DefaultListModel;
  14. import com.sun.java.swing.ImageIcon;
  15. import com.sun.java.swing.table.DefaultTableModel;
  16. import java.awt.Color;
  17. import java.awt.Font;
  18. import java.lang.reflect.Array;
  19. import java.util.Vector;
  20.  
  21. public class WizardModelDbList2 extends WizardModelAbstract {
  22.    private static final String OPT_FONTSIZE = "option.fontsize";
  23.    private static final String OPT_COLOR = "option.color";
  24.    private static final String[] _colorNames = new String[]{"black", "blue", "cyan", "darkGray", "green", "gray", "lightGray", "magenta", "orange", "pink", "red", "white", "yellow"};
  25.    private static final Vector _realColors = new Vector();
  26.    private static final Vector _fontSizeRel;
  27.    private static final Vector _fontSizeExact;
  28.    private boolean _firstLoad = true;
  29.    private DefList _defList;
  30.    private Vector _colors;
  31.    private Vector _size;
  32.    private boolean _previewed = false;
  33.    private boolean _updatingTableParams = false;
  34.    // $FF: synthetic field
  35.    static Class class$asp$nfx$MSDBList$MSDBList;
  36.  
  37.    public WizardModelDbList2() {
  38.    }
  39.  
  40.    public DefList getDefList() {
  41.       return this._defList;
  42.    }
  43.  
  44.    public void setDefList(DefList defList) {
  45.       this._defList = defList;
  46.    }
  47.  
  48.    public WizardModelDbList2(Wizard wizard, String bullet, String info, ImageIcon icon, ExceptionHandler handler) {
  49.       super(wizard, bullet, info, icon, handler);
  50.    }
  51.  
  52.    protected WizardPageView getViewSingleInstance() {
  53.       return WizardViewDbList2.getInstance();
  54.    }
  55.  
  56.    private DefQuery getDefQuery() {
  57.       DefQuery result = null;
  58.       WizardManager wm = ((WizardModelAbstract)this).getWizardManager();
  59.       if (wm != null) {
  60.          result = wm.getDefQuery(this);
  61.       } else {
  62.          System.err.println("WizardManager not found");
  63.       }
  64.  
  65.       return result;
  66.    }
  67.  
  68.    public void clearPreview() {
  69.       ((WizardViewDbList2)((WizardPage)this).getView()).clearPreview();
  70.    }
  71.  
  72.    protected void updatePreview() {
  73.       if (!this._updatingTableParams) {
  74.          this.clearPreview();
  75.          WizardViewDbList2 view = (WizardViewDbList2)((WizardPage)this).getView();
  76.          DefaultTableModel tmPreview = (DefaultTableModel)view.getPreviewTableModel();
  77.          tmPreview.setNumRows(0);
  78.          DefQuery aDefQuery = this.getDefQuery();
  79.          if (aDefQuery != null) {
  80.             Vector firstRecord = aDefQuery.getFirstRecord();
  81.             Object[] columnNames = this.getDefList().getFieldNames();
  82.             Object[] columnTitles = this.getDefList().getFieldLabels();
  83.             if (columnNames == null) {
  84.                return;
  85.             }
  86.  
  87.             String faceFont = "Times New Roman";
  88.             String dataFont = "Times New Roman";
  89.  
  90.             try {
  91.                faceFont = view.getHeaderFace();
  92.                dataFont = view.getDataFace();
  93.             } catch (Exception e) {
  94.                AspWizardExceptionHandler.showMessage(0, ((Throwable)e).getMessage());
  95.                return;
  96.             }
  97.  
  98.             DefaultListModel fields = new DefaultListModel();
  99.             if (aDefQuery != null) {
  100.                fields.setSize(0);
  101.  
  102.                try {
  103.                   WizDbManager.getFields(aDefQuery, false, fields);
  104.                } catch (EWizDbManager e) {
  105.                   AspWizardExceptionHandler.showMessage(0, ((Throwable)e).getMessage());
  106.                }
  107.             }
  108.  
  109.             int columnCount = columnNames != null ? Array.getLength(columnNames) : 0;
  110.             int i = 0;
  111.             Object[] firstRow = new Object[columnCount];
  112.             Object[][] rows = new Object[2][];
  113.  
  114.             for(int var22 = 1; var22 <= columnCount; ++var22) {
  115.                firstRow[var22 - 1] = firstRecord.elementAt(fields.indexOf(columnNames[var22 - 1]));
  116.             }
  117.  
  118.             rows[0] = columnTitles;
  119.             rows[1] = firstRow;
  120.             tmPreview.setDataVector(rows, columnNames);
  121.             PreviewCellRenderer rndr = view.getPreviewTableCellRenderer();
  122.             Font font = this.specToFont(faceFont, view.getHeaderSize(), view.getHeaderBold(), view.getHeaderItalic());
  123.             Color color = (Color)_realColors.elementAt(view.getHeaderColor());
  124.             boolean underline = view.getHeaderUnderline() != 1;
  125.             rndr.setFirstRowTextAttributes(font, underline, color);
  126.             font = this.specToFont(dataFont, view.getDataSize(), view.getDataBold(), view.getDataItalic());
  127.             color = (Color)_realColors.elementAt(view.getDataColor());
  128.             underline = view.getDataUnderline() != 1;
  129.             rndr.setOtherRowTextAttributes(font, underline, color);
  130.             view.adjustPreviewColumnWidths();
  131.             this._previewed = true;
  132.          }
  133.  
  134.       }
  135.    }
  136.  
  137.    public String getColor(int colorIndex) {
  138.       int maxCount = Array.getLength(_colorNames);
  139.       String result = null;
  140.       if (colorIndex >= 0 && colorIndex < maxCount) {
  141.          result = _colorNames[colorIndex];
  142.       }
  143.  
  144.       return result;
  145.    }
  146.  
  147.    public String getSize(int myValue) {
  148.       int maxCount = 7;
  149.       String result = "";
  150.       String[] myArray = new String[maxCount];
  151.       if (myValue >= 0 && myValue < maxCount) {
  152.          myArray[0] = "-2";
  153.          myArray[1] = "-1";
  154.          myArray[2] = "+0";
  155.          myArray[3] = "+1";
  156.          myArray[4] = "+2";
  157.          myArray[5] = "+3";
  158.          myArray[6] = "+4";
  159.          result = myArray[myValue];
  160.       }
  161.  
  162.       return result;
  163.    }
  164.  
  165.    public void loadView() {
  166.       WizardViewDbList2 view = (WizardViewDbList2)((WizardPage)this).getView();
  167.       WizardManager WM = ((WizardModelAbstract)this).getWizardManager();
  168.       this._defList = WM.getDefList(this);
  169.       this._updatingTableParams = true;
  170.       this.setupComboBoxes(view);
  171.       if (this._defList != null) {
  172.          view.setBorderSize(this._defList.getBorderSize());
  173.          view.setCellPadding(this._defList.getCellPadding());
  174.          view.setCellSpacing(this._defList.getCellSpacing());
  175.          if (this._defList.getLabelFont() != null) {
  176.             view.setHeaderFace(this._defList.getLabelFont());
  177.          }
  178.  
  179.          view.setHeaderColor(this._defList.getLabelFontColor());
  180.          view.setHeaderSize(this._defList.getLabelFontSize());
  181.          view.setHeaderBold(this._defList.getLabelBold());
  182.          view.setHeaderItalic(this._defList.getLabelItalic());
  183.          view.setHeaderUnderline(this._defList.getLabelUnderline());
  184.          if (this._defList.getDataFont() != null) {
  185.             view.setDataFace(this._defList.getDataFont());
  186.          }
  187.  
  188.          view.setDataColor(this._defList.getDataFontColor());
  189.          view.setDataSize(this._defList.getDataFontSize());
  190.          view.setDataBold(this._defList.getDataBold());
  191.          view.setDataItalic(this._defList.getDataItalic());
  192.          view.setDataUnderline(this._defList.getDataUnderline());
  193.       }
  194.  
  195.       if (this._previewed) {
  196.          this.updatePreview();
  197.       } else {
  198.          this.clearPreview();
  199.       }
  200.  
  201.       this._updatingTableParams = false;
  202.    }
  203.  
  204.    private String mapToJavaFontName(String fontName) {
  205.       String result = "Helvetica";
  206.       String upperFontName = fontName.toUpperCase();
  207.       if (upperFontName.startsWith("ARIAL")) {
  208.          result = "Helvetica";
  209.       } else if (upperFontName.startsWith("TIMES")) {
  210.          result = "TimesRoman";
  211.       } else if (upperFontName.equals("MS SANS SERIF")) {
  212.          result = "TimesRoman";
  213.       } else if (upperFontName.equals("MS SERIF")) {
  214.          result = "Helvetica";
  215.       } else if (upperFontName.equals("COURIER")) {
  216.          result = "Courier";
  217.       } else if (upperFontName.equals("WINGDINGS")) {
  218.          result = "ZapfDingBats";
  219.       }
  220.  
  221.       return result;
  222.    }
  223.  
  224.    private Font specToFont(String fontName, int sizeIndex, int isBold, int isItalic) {
  225.       int style = 0;
  226.       if (isBold != 1) {
  227.          style |= 1;
  228.       }
  229.  
  230.       if (isItalic != 1) {
  231.          style |= 2;
  232.       }
  233.  
  234.       fontName = this.mapToJavaFontName(fontName);
  235.       int fontSize = 10;
  236.       if (_fontSizeExact.elementAt(sizeIndex) != null) {
  237.          fontSize = (Integer)_fontSizeExact.elementAt(sizeIndex);
  238.       }
  239.  
  240.       return new Font(fontName, style, fontSize);
  241.    }
  242.  
  243.    public Vector getColors() {
  244.       return this._colors;
  245.    }
  246.  
  247.    public Vector getSizes() {
  248.       return this._size;
  249.    }
  250.  
  251.    public void commit() throws InternalError, ExternalError {
  252.       WizardViewDbList2 view = (WizardViewDbList2)((WizardPage)this).getView();
  253.       if (this._defList == null) {
  254.          this._defList = new DefList();
  255.          ((WizardModelAbstract)this).getDefPage().addElement(this._defList);
  256.       }
  257.  
  258.       this._defList.setBorderSize(view.getBorderSize());
  259.       this._defList.setCellSpacing(view.getCellSpacing());
  260.       this._defList.setCellPadding(view.getCellPadding());
  261.       this._defList.setLabelFont(view.getHeaderFace());
  262.       this._defList.setLabelFontColor(view.getHeaderColor());
  263.       this._defList.setLabelFontSize(view.getHeaderSize());
  264.       this._defList.setLabelBold(view.getHeaderBold());
  265.       this._defList.setLabelItalic(view.getHeaderItalic());
  266.       this._defList.setLabelUnderline(view.getHeaderUnderline());
  267.       this._defList.setDataFont(view.getDataFace());
  268.       this._defList.setDataFontSize(view.getDataSize());
  269.       this._defList.setDataFontColor(view.getDataColor());
  270.       this._defList.setDataBold(view.getDataBold());
  271.       this._defList.setDataUnderline(view.getDataUnderline());
  272.       this._defList.setDataItalic(view.getDataItalic());
  273.    }
  274.  
  275.    public void validate() throws InternalError, ExternalError {
  276.       super.validate();
  277.       WizardViewDbList2 view = (WizardViewDbList2)((WizardPage)this).getView();
  278.  
  279.       try {
  280.          view.getBorderSize();
  281.          view.getCellSpacing();
  282.          view.getCellPadding();
  283.          view.getHeaderFace();
  284.          view.getDataFace();
  285.       } catch (Exception e) {
  286.          throw new ExternalError(((Throwable)e).getMessage());
  287.       }
  288.    }
  289.  
  290.    public void setupComboBoxes(WizardViewDbList2 view) {
  291.       String colors = ResourceUtil.getResourceString("asp.nfx.res", class$asp$nfx$MSDBList$MSDBList != null ? class$asp$nfx$MSDBList$MSDBList : (class$asp$nfx$MSDBList$MSDBList = class$("asp.nfx.MSDBList.MSDBList")), "option.color");
  292.       String size = ResourceUtil.getResourceString("asp.nfx.res", class$asp$nfx$MSDBList$MSDBList != null ? class$asp$nfx$MSDBList$MSDBList : (class$asp$nfx$MSDBList$MSDBList = class$("asp.nfx.MSDBList.MSDBList")), "option.fontsize");
  293.       view.setColors(UiUtil.strToVector(colors));
  294.       view.setSize(UiUtil.strToVector(size));
  295.    }
  296.  
  297.    public boolean isPreviewed() {
  298.       return this._previewed;
  299.    }
  300.  
  301.    // $FF: synthetic method
  302.    static Class class$(String class$) {
  303.       try {
  304.          return Class.forName(class$);
  305.       } catch (ClassNotFoundException forName) {
  306.          throw new NoClassDefFoundError(((Throwable)forName).getMessage());
  307.       }
  308.    }
  309.  
  310.    static {
  311.       _realColors.addElement(Color.black);
  312.       _realColors.addElement(Color.blue);
  313.       _realColors.addElement(Color.cyan);
  314.       _realColors.addElement(Color.darkGray);
  315.       _realColors.addElement(Color.green);
  316.       _realColors.addElement(Color.gray);
  317.       _realColors.addElement(Color.lightGray);
  318.       _realColors.addElement(Color.magenta);
  319.       _realColors.addElement(Color.orange);
  320.       _realColors.addElement(Color.pink);
  321.       _realColors.addElement(Color.red);
  322.       _realColors.addElement(Color.white);
  323.       _realColors.addElement(Color.yellow);
  324.       _fontSizeRel = new Vector();
  325.       _fontSizeRel.addElement("-2");
  326.       _fontSizeRel.addElement("-1");
  327.       _fontSizeRel.addElement("+0");
  328.       _fontSizeRel.addElement("+1");
  329.       _fontSizeRel.addElement("+2");
  330.       _fontSizeRel.addElement("+3");
  331.       _fontSizeRel.addElement("+4");
  332.       _fontSizeExact = new Vector();
  333.       _fontSizeExact.addElement(new Integer(8));
  334.       _fontSizeExact.addElement(new Integer(10));
  335.       _fontSizeExact.addElement(new Integer(12));
  336.       _fontSizeExact.addElement(new Integer(14));
  337.       _fontSizeExact.addElement(new Integer(18));
  338.       _fontSizeExact.addElement(new Integer(24));
  339.       _fontSizeExact.addElement(new Integer(36));
  340.    }
  341. }
  342.