Source code: org/alicebot/server/core/targeting/gui/Tabulator.java
1 // Decompiled by Jad v1.5.8c. Copyright 2001 Pavel Kouznetsov.
2 // Jad home page: http://www.geocities.com/kpdus/jad.html
3 // Decompiler options: packimports(3)
4
5 package org.alicebot.server.core.targeting.gui;
6
7 import java.awt.Component;
8 import java.awt.Dimension;
9 import java.awt.event.MouseAdapter;
10 import java.awt.event.MouseEvent;
11 import javax.swing.*;
12 import javax.swing.table.*;
13 import org.alicebot.server.core.targeting.Target;
14
15 // Referenced classes of package org.alicebot.server.core.targeting.gui:
16 // TableSorter, TargetingGUI, TargetPanel
17
18 public abstract class Tabulator extends JPanel
19 {
20 private class TargetOpener extends MouseAdapter
21 {
22
23 public void mouseClicked(MouseEvent mouseevent)
24 {
25 if(mouseevent.getClickCount() == 2)
26 {
27 Target target = (Target)sorterTableModel.getValueAt(table.rowAtPoint(mouseevent.getPoint()), columnCount - 2);
28 int i = ((Integer)sorterTableModel.getValueAt(table.rowAtPoint(mouseevent.getPoint()), columnCount - 1)).intValue();
29 guiparent.targetPanel.setTarget(target);
30 guiparent.targetPanel.scrollToInput(i);
31 guiparent.viewTargets();
32 }
33 }
34
35 private TargetOpener()
36 {
37 }
38
39 }
40
41 private class TabulatorTableModel extends AbstractTableModel
42 {
43
44 public int getColumnCount()
45 {
46 return columnNames.length;
47 }
48
49 public synchronized int getRowCount()
50 {
51 if(data == null)
52 return 0;
53 else
54 return data.length;
55 }
56
57 public String getColumnName(int i)
58 {
59 return columnNames[i];
60 }
61
62 public Object getValueAt(int i, int j)
63 {
64 return data[i][j];
65 }
66
67 public Class getColumnClass(int i)
68 {
69 return getValueAt(0, i).getClass();
70 }
71
72 public synchronized void setData(Object aobj[][])
73 {
74 data = aobj;
75 fireTableDataChanged();
76 }
77
78 public Object[] getLongestRow()
79 {
80 if(data == null)
81 return null;
82 int i = 0;
83 int j = 0;
84 for(int k = 0; k < data.length; k++)
85 {
86 int l = 0;
87 for(int i1 = 0; i1 < columnNames.length; i1++)
88 l += data[k][i1].toString().length();
89
90 i = l <= i ? i : l;
91 j = l <= i ? j : k;
92 }
93
94 return data[j];
95 }
96
97 private String columnNames[];
98 private Object data[][];
99
100 public TabulatorTableModel(String as[])
101 {
102 columnNames = as;
103 }
104 }
105
106
107 public Tabulator(String as[])
108 {
109 visibleColumnCount = as.length;
110 dataTableModel = new TabulatorTableModel(as);
111 sorterTableModel = new TableSorter(dataTableModel);
112 table = new JTable(sorterTableModel);
113 table.getTableHeader().setReorderingAllowed(false);
114 table.setSelectionMode(0);
115 table.addMouseListener(new TargetOpener());
116 sorterTableModel.addMouseListenerToHeaderInTable(table);
117 JScrollPane jscrollpane = new JScrollPane(table);
118 setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10));
119 setLayout(new BoxLayout(this, 1));
120 add(jscrollpane);
121 }
122
123 public void reloadData(Object aobj[][])
124 {
125 dataTableModel.setData(aobj);
126 columnCount = aobj[0].length;
127 Object obj = null;
128 Object obj1 = null;
129 boolean flag = false;
130 boolean flag1 = false;
131 Object aobj1[] = dataTableModel.getLongestRow();
132 if(aobj1 == null)
133 return;
134 for(int k = 0; k < visibleColumnCount; k++)
135 {
136 TableColumn tablecolumn = table.getColumnModel().getColumn(k);
137 Component component = table.getTableHeader().getDefaultRenderer().getTableCellRendererComponent(null, tablecolumn.getHeaderValue(), false, false, 0, 0);
138 int i = component.getPreferredSize().width;
139 component = table.getDefaultRenderer(sorterTableModel.getColumnClass(k)).getTableCellRendererComponent(table, aobj1[k], false, false, 0, k);
140 int j = component.getPreferredSize().width;
141 tablecolumn.setPreferredWidth(Math.max(i, j));
142 }
143
144 }
145
146 private JTable table;
147 private int columnCount;
148 private int visibleColumnCount;
149 private TabulatorTableModel dataTableModel;
150 private TableSorter sorterTableModel;
151 TargetingGUI guiparent;
152
153
154
155 }