home *** CD-ROM | disk | FTP | other *** search
- package jclass.bwt;
-
- import java.awt.Color;
- import java.awt.Component;
- import java.awt.Graphics;
- import java.awt.Rectangle;
- import java.util.Vector;
-
- public class JCMultiColumnData implements JCSerializable {
- protected JCMultiColumnInterface multi;
- protected JCComponent comp;
- public int[] column_widths = new int[0];
- public int[] column_widths_ext = new int[0];
- public int num_columns = 1;
- public int[] alignments = new int[0];
- public int[] left_margins = new int[0];
- public int[] right_margins = new int[0];
- Rectangle rect = new Rectangle();
-
- public JCMultiColumnData() {
- }
-
- public JCMultiColumnData(JCMultiColumnInterface var1) {
- this.multi = var1;
- if (var1 instanceof JCComponent) {
- this.comp = (JCComponent)var1;
- }
-
- }
-
- protected void adjustDrawingRect(int var1, Rectangle var2, Rectangle var3) {
- int var4 = this.multi.getColumnLeftMargin(var1);
- var3.x = this.multi.getColumnPosition(var1) + var4;
- var3.width -= var4 + this.multi.getColumnRightMargin(var1);
- }
-
- public synchronized void draw(Graphics var1, Object var2, Rectangle var3) {
- if (var3 == null) {
- if (this.comp != null) {
- this.rect = this.comp.getDrawingArea();
- } else {
- if (!(this.multi instanceof Component)) {
- return;
- }
-
- this.rect = ((Component)this.multi).bounds();
- }
- } else {
- this.rect.reshape(var3.x, var3.y, var3.width, var3.height);
- }
-
- Color var4 = null;
- if (this.comp != null && !this.comp.isEnabled()) {
- var4 = var1.getColor();
- var1.setColor(Color.lightGray.darker().darker());
- }
-
- if (var2 instanceof Vector && !BWTUtil.instanceOf(var2, "JCString")) {
- Rectangle var5 = null;
- if (this.comp instanceof JCComponent) {
- var5 = this.comp.getPaintRect();
- }
-
- if (var5 == null) {
- var5 = var1.getClipRect();
- }
-
- for(int var6 = 0; var6 < ((Vector)var2).size() && var6 < this.num_columns; ++var6) {
- this.rect.width = this.multi.getColumnWidth(var6);
- if (this.rect.width < 0) {
- break;
- }
-
- this.adjustDrawingRect(var6, var3, this.rect);
- if (var5.intersects(this.rect)) {
- Graphics var7 = var1.create();
- var7.clipRect(this.rect.x, this.rect.y, this.rect.width, this.rect.height);
- BWTUtil.draw((Component)this.multi, var7, ((Vector)var2).elementAt(var6), this.multi.getColumnAlignment(var6), this.rect);
- var7.dispose();
- }
- }
-
- } else if (this.comp != null) {
- BWTUtil.draw(this.comp, var1, var2, this.multi.getColumnAlignment(0), var3);
- if (!this.comp.isEnabled()) {
- var1.setColor(var4);
- }
-
- }
- }
-
- public int preferredWidth() {
- int var1 = this.getColumnPosition(this.getNumColumns());
- if (this.comp != null) {
- var1 += 2 * this.comp.shadow + 2 * this.comp.highlight + this.comp.insets().left + this.comp.insets().right;
- }
-
- return var1;
- }
-
- public void calcColumnWidths() {
- if (((Component)this.multi).getPeer() != null) {
- this.column_widths_ext = BWTUtil.copyList(this.column_widths_ext, this.num_columns, -998);
- this.column_widths = BWTUtil.copyList(this.column_widths, this.num_columns, -998);
- System.arraycopy(this.column_widths_ext, 0, this.column_widths, 0, this.num_columns);
-
- for(int var1 = 0; var1 < this.num_columns; ++var1) {
- if (this.column_widths_ext[var1] == -998) {
- this.column_widths[var1] = this.multi.calcWidth(var1);
- }
- }
-
- }
- }
-
- public int[] getColumnWidths() {
- return this.column_widths_ext;
- }
-
- public void setColumnWidths(int[] var1) {
- this.column_widths_ext = var1 != null ? var1 : new int[0];
- this.calcColumnWidths();
- }
-
- public int getColumnWidth(int var1) {
- return var1 >= 0 && var1 < this.column_widths.length ? this.column_widths[var1] : 0;
- }
-
- public void setColumnWidth(int var1, int var2) {
- this.column_widths = BWTUtil.copyList(this.column_widths, var1 + 1, -998);
- this.column_widths_ext = BWTUtil.copyList(this.column_widths_ext, var1 + 1, -998);
- this.column_widths_ext[var1] = this.column_widths[var1] = var2;
- if (var2 == -998) {
- this.column_widths[var1] = this.multi.calcWidth(var1);
- }
-
- }
-
- void setColumnWidthInternal(int var1, int var2) {
- this.column_widths = BWTUtil.copyList(this.column_widths, var1 + 1, -998);
- this.column_widths_ext = BWTUtil.copyList(this.column_widths_ext, var1 + 1, -998);
- this.column_widths[var1] = var2;
- if (var2 == -998) {
- this.column_widths[var1] = this.multi.calcWidth(var1);
- }
-
- }
-
- public int getNumColumns() {
- return this.num_columns;
- }
-
- public void setNumColumns(int var1) {
- this.num_columns = var1;
- }
-
- public int getColumnAlignment(int var1) {
- return var1 < this.alignments.length ? this.alignments[var1] : 3;
- }
-
- public int[] getColumnAlignments() {
- this.alignments = BWTUtil.copyList(this.alignments, this.num_columns, 3);
- return this.alignments;
- }
-
- public void setColumnAlignment(int var1, int var2) {
- this.alignments = BWTUtil.copyList(this.alignments, var1 + 1, 3);
- this.alignments[var1] = var2;
- }
-
- public void setColumnAlignments(int[] var1) {
- this.alignments = var1 != null ? var1 : new int[0];
- }
-
- public int getColumnPosition(int var1) {
- int var2 = 0;
-
- for(int var3 = 0; var3 < this.column_widths.length && var3 < var1; ++var3) {
- var2 += this.column_widths[var3];
- }
-
- return var2;
- }
-
- public int getColumnLeftMargin(int var1) {
- return var1 < this.left_margins.length ? this.left_margins[var1] : 5;
- }
-
- public void setColumnLeftMargin(int var1, int var2) {
- this.left_margins = BWTUtil.copyList(this.left_margins, var1 + 1, 5);
- this.left_margins[var1] = var2;
- }
-
- public int getColumnRightMargin(int var1) {
- return var1 < this.right_margins.length ? this.right_margins[var1] : 5;
- }
-
- public void setColumnRightMargin(int var1, int var2) {
- this.right_margins = BWTUtil.copyList(this.right_margins, var1 + 1, 5);
- this.right_margins[var1] = var2;
- }
- }
-