Docjar: A Java Source and Docuemnt Enginecom.*    java.*    javax.*    org.*    all    new    plug-in

Quick Search    Search Deep

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 }