home *** CD-ROM | disk | FTP | other *** search
/ Symantec Visual Cafe for Java 2.5 / symantec-visual-cafe-2.5-database-dev-edition.iso / VCafe / JCLASS.BIN / KLG.JAR / jclass / bwt / JCMultiColumnWindow.class (.txt) < prev    next >
Encoding:
Java Class File  |  1997-12-05  |  6.3 KB  |  349 lines

  1. package jclass.bwt;
  2.  
  3. import java.applet.Applet;
  4. import java.awt.Component;
  5. import java.awt.Container;
  6. import java.awt.Font;
  7. import java.util.EventObject;
  8. import java.util.Vector;
  9. import jclass.util.JCSortInterface;
  10. import jclass.util.JCUtilConverter;
  11. import jclass.util.JCVector;
  12.  
  13. public abstract class JCMultiColumnWindow extends JCScrolledWindow implements JCMultiColumnInterface, JCActionListener {
  14.    public static final int ASCENDING = 0;
  15.    public static final int DESCENDING = 1;
  16.    JCSortInterface sort_method;
  17.    boolean column_label_sort = true;
  18.    protected Viewport headerArea;
  19.    protected JCHeader header;
  20.    protected JCMultiColumnInterface comp;
  21.  
  22.    public JCMultiColumnWindow() {
  23.       super((Applet)null, (String)null);
  24.    }
  25.  
  26.    public JCMultiColumnWindow(Applet var1, String var2) {
  27.       super(var1, var2);
  28.    }
  29.  
  30.    public JCHeader getHeader() {
  31.       if (this.header == null) {
  32.          this.setHeader(new JCHeader((String[])null, super.applet, ((Component)this).getName()));
  33.       }
  34.  
  35.       return this.header;
  36.    }
  37.  
  38.    public void setHeader(JCHeader var1) {
  39.       this.header = var1;
  40.       if (var1 == null) {
  41.          if (this.headerArea != null) {
  42.             ((Container)this).remove(this.headerArea);
  43.          }
  44.  
  45.          this.headerArea = null;
  46.       } else {
  47.          if (this.headerArea == null) {
  48.             this.headerArea = new Viewport();
  49.          }
  50.  
  51.          this.headerArea.add(var1);
  52.          var1.setMultiColumnComponent((JCMultiColumnInterface)super.viewport);
  53.          var1.addActionListener(this);
  54.          if (((Component)this).getPeer() != null) {
  55.             ((JCScrolledWindow)this).addInternal(this.headerArea);
  56.          }
  57.  
  58.       }
  59.    }
  60.  
  61.    public String[] getColumnLabels() {
  62.       if (this.header == null) {
  63.          return null;
  64.       } else {
  65.          JCComponent[] var1 = this.header.getLabels();
  66.          String[] var2 = new String[var1.length];
  67.  
  68.          for(int var3 = 0; var3 < var1.length; ++var3) {
  69.             if (var1[var3] instanceof JCLabel) {
  70.                Object var4 = ((JCLabel)var1[var3]).getLabel();
  71.                var2[var3] = var4 != null ? var4.toString() : "";
  72.             } else {
  73.                var2[var3] = var1[var3].getName();
  74.             }
  75.          }
  76.  
  77.          return var2;
  78.       }
  79.    }
  80.  
  81.    public void setColumnLabels(String[] var1) {
  82.       this.setColumnLabels(new JCVector(var1));
  83.    }
  84.  
  85.    public void setColumnLabels(JCVector var1) {
  86.       if (this.header == null) {
  87.          if (var1 == null || ((Vector)var1).size() == 0) {
  88.             return;
  89.          }
  90.  
  91.          this.setHeader(new JCHeader((String[])null, super.applet, ((Component)this).getName()));
  92.       }
  93.  
  94.       if (var1 != null && ((Vector)var1).size() != 0) {
  95.          this.header.setLabels(var1);
  96.       } else {
  97.          this.setHeader((JCHeader)null);
  98.       }
  99.    }
  100.  
  101.    public void setColumnButtons(String[] var1) {
  102.       this.setColumnButtons(new JCVector(var1));
  103.    }
  104.  
  105.    public void setColumnButtons(JCVector var1) {
  106.       if (this.header == null) {
  107.          if (var1 == null || ((Vector)var1).size() == 0) {
  108.             return;
  109.          }
  110.  
  111.          this.setHeader(new JCHeader((String[])null, super.applet, ((Component)this).getName()));
  112.       }
  113.  
  114.       if (var1 != null && ((Vector)var1).size() != 0) {
  115.          this.header.setButtons(var1);
  116.       } else {
  117.          this.setHeader((JCHeader)null);
  118.       }
  119.    }
  120.  
  121.    protected void setViewport(JCMultiColumnInterface var1) {
  122.       this.comp = var1;
  123.       super.viewport = (Component)var1;
  124.    }
  125.  
  126.    protected int reshapeHeader(int var1, int var2, int var3) {
  127.       int var4 = this.headerHeight();
  128.       if (this.headerArea != null) {
  129.          this.headerArea.reshape(var1, var2, var3, var4);
  130.       }
  131.  
  132.       return var4;
  133.    }
  134.  
  135.    protected int headerHeight() {
  136.       return this.headerArea == null ? 0 : this.headerArea.preferredSize().height;
  137.    }
  138.  
  139.    protected int headerWidth() {
  140.       return this.headerArea == null ? 0 : this.headerArea.preferredSize().width;
  141.    }
  142.  
  143.    protected void reshapeViewport(int var1, int var2, int var3, int var4) {
  144.       if (this.headerArea != null) {
  145.          var2 -= ((JCComponent)this.comp).highlight;
  146.       }
  147.  
  148.       super.reshapeViewport(var1, var2, var3, var4);
  149.    }
  150.  
  151.    protected int preferredHeight() {
  152.       int var1 = super.preferredHeight();
  153.       if (this.headerArea != null) {
  154.          var1 += this.headerArea.preferredSize().height;
  155.       }
  156.  
  157.       return var1;
  158.    }
  159.  
  160.    protected int getViewportWidth() {
  161.       int var1 = super.getViewportWidth();
  162.       if (this.headerArea != null) {
  163.          var1 = Math.max(var1, this.headerArea.preferredSize().width);
  164.       }
  165.  
  166.       return var1;
  167.    }
  168.  
  169.    public synchronized void setFont(Font var1) {
  170.       if (((Component)this).getFont() == null || !((Component)this).getFont().equals(var1)) {
  171.          super.setFont(var1);
  172.          if (((Component)this).getPeer() != null) {
  173.             ((Component)this.comp).setFont(var1);
  174.             if (this.header != null) {
  175.                this.header.setFont(var1);
  176.             }
  177.  
  178.             ((JCScrolledWindow)this).layout();
  179.          }
  180.       }
  181.    }
  182.  
  183.    public boolean getColumnLabelSort() {
  184.       return this.column_label_sort;
  185.    }
  186.  
  187.    public void setColumnLabelSort(boolean var1) {
  188.       this.column_label_sort = var1;
  189.    }
  190.  
  191.    public void setColumnLabelSortMethod(JCSortInterface var1) {
  192.       this.sort_method = var1;
  193.    }
  194.  
  195.    public JCSortInterface getColumnLabelSortMethod() {
  196.       return this.sort_method;
  197.    }
  198.  
  199.    public void sortByColumn(int var1, JCSortInterface var2) {
  200.    }
  201.  
  202.    public void sortByColumn(int var1, JCSortInterface var2, int var3) {
  203.    }
  204.  
  205.    public void addNotify() {
  206.       super.addNotify();
  207.       if (this.headerArea != null) {
  208.          ((JCScrolledWindow)this).addInternal(this.headerArea);
  209.          this.header.setMultiColumnComponent((JCMultiColumnInterface)super.viewport);
  210.       }
  211.  
  212.    }
  213.  
  214.    protected void scrollHorizontal(JCAdjustmentEvent var1, int var2) {
  215.       if (this.headerArea != null) {
  216.          this.headerArea.scrollHorizontal(var2);
  217.       }
  218.  
  219.       super.scrollHorizontal(var1, var2);
  220.    }
  221.  
  222.    public void actionPerformed(JCActionEvent var1) {
  223.       if (this.header != null && this.getColumnLabelSort()) {
  224.          int var2 = 0;
  225.          Component var3 = (Component)((EventObject)var1).getSource();
  226.          int var4 = this.header.getComponent(var3);
  227.          if (var4 >= 0) {
  228.             if (var3 instanceof HeaderButton) {
  229.                var2 = ((HeaderButton)var3).direction;
  230.             }
  231.  
  232.             this.sortByColumn(var4, this.sort_method, var2);
  233.             if (var3 instanceof HeaderButton) {
  234.                ((HeaderButton)var3).direction = var2 == 0 ? 1 : 0;
  235.             }
  236.  
  237.          }
  238.       }
  239.    }
  240.  
  241.    public int[] getColumnWidths() {
  242.       return this.comp.getColumnWidths();
  243.    }
  244.  
  245.    public void setColumnWidths(int[] var1) {
  246.       if (this.header != null) {
  247.          this.header.setColumnWidths(var1);
  248.       }
  249.  
  250.       this.comp.setColumnWidths(var1);
  251.    }
  252.  
  253.    public int getColumnWidth(int var1) {
  254.       return this.comp.getColumnWidth(var1);
  255.    }
  256.  
  257.    public void setColumnWidth(int var1, int var2) {
  258.       if (var2 < 0 && var2 != -998) {
  259.          throw new IllegalArgumentException("invalid column width: " + var2);
  260.       } else {
  261.          if (this.header != null) {
  262.             this.header.setColumnWidth(var1, var2);
  263.          }
  264.  
  265.          this.comp.setColumnWidth(var1, var2);
  266.       }
  267.    }
  268.  
  269.    public int getNumColumns() {
  270.       return this.comp.getNumColumns();
  271.    }
  272.  
  273.    public void setNumColumns(int var1) {
  274.       if (var1 < 0 && var1 != -998) {
  275.          throw new IllegalArgumentException("invalid NumColumns: " + var1);
  276.       } else {
  277.          this.comp.setNumColumns(var1);
  278.          if (this.header != null) {
  279.             this.header.setNumColumns(var1);
  280.          }
  281.  
  282.          ((JCScrolledWindow)this).layout();
  283.       }
  284.    }
  285.  
  286.    public int[] getColumnAlignments() {
  287.       return this.comp.getColumnAlignments();
  288.    }
  289.  
  290.    public int getColumnAlignment(int var1) {
  291.       return this.comp.getColumnAlignment(var1);
  292.    }
  293.  
  294.    public void setColumnAlignment(int var1, int var2) {
  295.       JCUtilConverter.checkEnum(var2, "alignment", LabelConverter.alignment_values);
  296.       this.comp.setColumnAlignment(var1, var2);
  297.    }
  298.  
  299.    public void setColumnLabelAlignment(int var1, int var2) {
  300.       JCUtilConverter.checkEnum(var2, "alignment", LabelConverter.alignment_values);
  301.       if (this.header != null) {
  302.          this.header.setColumnAlignment(var1, var2);
  303.       }
  304.  
  305.    }
  306.  
  307.    public void setColumnAlignments(int[] var1) {
  308.       this.comp.setColumnAlignments(var1);
  309.    }
  310.  
  311.    public int getColumnPosition(int var1) {
  312.       return this.comp.getColumnPosition(var1);
  313.    }
  314.  
  315.    public int getColumnLeftMargin(int var1) {
  316.       return this.comp.getColumnLeftMargin(var1);
  317.    }
  318.  
  319.    public void setColumnLeftMargin(int var1, int var2) {
  320.       this.comp.setColumnLeftMargin(var1, var2);
  321.       if (this.header != null) {
  322.          this.header.setColumnLeftMargin(var1, var2);
  323.       }
  324.  
  325.       ((JCScrolledWindow)this).layout();
  326.    }
  327.  
  328.    public int getColumnRightMargin(int var1) {
  329.       return this.comp.getColumnRightMargin(var1);
  330.    }
  331.  
  332.    public void setColumnRightMargin(int var1, int var2) {
  333.       this.comp.setColumnRightMargin(var1, var2);
  334.       if (this.header != null) {
  335.          this.header.setColumnRightMargin(var1, var2);
  336.       }
  337.  
  338.       ((JCScrolledWindow)this).layout();
  339.    }
  340.  
  341.    public int calcWidth(int var1) {
  342.       return this.comp.calcWidth(var1);
  343.    }
  344.  
  345.    public JCMultiColumnData getMultiColumnData() {
  346.       return this.comp.getMultiColumnData();
  347.    }
  348. }
  349.