summaryrefslogtreecommitdiff
path: root/scripting/workben/installer
diff options
context:
space:
mode:
authorTomas O'Connor <toconnor@openoffice.org>2003-02-28 13:34:32 +0000
committerTomas O'Connor <toconnor@openoffice.org>2003-02-28 13:34:32 +0000
commitc39c04c2f336c439850c2a60df48cf57d862cddb (patch)
tree904114fcd24a631a13113c0256748da31973298f /scripting/workben/installer
parent08b123663e642b7536a3ae6b7f867e76dc448726 (diff)
IssueZilla 11914 - Make table column sizes adjustable
Diffstat (limited to 'scripting/workben/installer')
-rw-r--r--scripting/workben/installer/Version.java98
1 files changed, 88 insertions, 10 deletions
diff --git a/scripting/workben/installer/Version.java b/scripting/workben/installer/Version.java
index 836d6557ee7e..e93d201b2280 100644
--- a/scripting/workben/installer/Version.java
+++ b/scripting/workben/installer/Version.java
@@ -111,13 +111,18 @@ public class Version extends javax.swing.JPanel implements ActionListener, Table
}
};
- tableVersions.setPreferredSize(new Dimension(InstallWizard.DEFWIDTH,InstallWizard.DEFHEIGHT));
- tableVersions.setAutoResizeMode(javax.swing.JTable.AUTO_RESIZE_ALL_COLUMNS);
- tableVersions.doLayout();
- setBorder(new javax.swing.border.EtchedBorder(javax.swing.border.EtchedBorder.RAISED));
- //JScrollPane scroll = new JScrollPane(tableVersions);
- //versionPanel.add(scroll);
- versionPanel.add(tableVersions);
+ JScrollPane scroll = new JScrollPane(tableVersions);
+
+ tableVersions.setPreferredSize(
+ new Dimension(InstallWizard.DEFWIDTH,InstallWizard.DEFHEIGHT));
+
+ tableVersions.setRowSelectionAllowed(false);
+ tableVersions.setColumnSelectionAllowed(false);
+ tableVersions.setCellSelectionEnabled(false);
+
+ initColumnSizes(tableVersions, tableModel);
+ versionPanel.add(scroll);
+
JTextArea area = new JTextArea("Please select the Office version you wish to Update");
area.setLineWrap(true);
area.setEditable(false);
@@ -130,6 +135,65 @@ public class Version extends javax.swing.JPanel implements ActionListener, Table
}// initComponents
+ private void initColumnSizes(JTable table, MyTableModel model) {
+ TableColumn column = null;
+ Component comp = null;
+ int headerWidth = 0;
+ int cellWidth = 0;
+ int preferredWidth = 0;
+ int totalWidth = 0;
+ Object[] longValues = model.longValues;
+
+ for (int i = 0; i < 3; i++) {
+ column = table.getColumnModel().getColumn(i);
+
+ try {
+ comp = column.getHeaderRenderer().
+ getTableCellRendererComponent(
+ null, column.getHeaderValue(),
+ false, false, 0, 0);
+ headerWidth = comp.getPreferredSize().width;
+ } catch (NullPointerException e) {
+ // System.err.println("Null pointer exception!");
+ // System.err.println(" getHeaderRenderer returns null in 1.3.");
+ // System.err.println(" The replacement is getDefaultRenderer.");
+ }
+
+ // need to replace spaces in String before getting preferred width
+ if (longValues[i] instanceof String) {
+ longValues[i] = ((String)longValues[i]).replace(' ', '_');
+ }
+
+ System.out.println("longValues: " + longValues[i]);
+ comp = table.getDefaultRenderer(model.getColumnClass(i)).
+ getTableCellRendererComponent(
+ table, longValues[i],
+ false, false, 0, i);
+ cellWidth = comp.getPreferredSize().width;
+
+ preferredWidth = Math.max(headerWidth, cellWidth);
+
+ if (false) {
+ System.out.println("Initializing width of column "
+ + i + ". "
+ + "preferredWidth = " + preferredWidth
+ + "; totalWidth = " + totalWidth
+ + "; leftWidth = " + (InstallWizard.DEFWIDTH - totalWidth));
+ }
+
+ //XXX: Before Swing 1.1 Beta 2, use setMinWidth instead.
+ if (i == 2) {
+ if (preferredWidth > InstallWizard.DEFWIDTH - totalWidth)
+ column.setPreferredWidth(InstallWizard.DEFWIDTH - totalWidth);
+ else
+ column.setPreferredWidth(preferredWidth);
+ }
+ else {
+ column.setMinWidth(preferredWidth);
+ totalWidth += preferredWidth;
+ }
+ }
+ }
public java.awt.Dimension getPreferredSize() {
return new java.awt.Dimension(320, 280);
@@ -173,9 +237,10 @@ public class Version extends javax.swing.JPanel implements ActionListener, Table
class MyTableModel extends AbstractTableModel {
ArrayList data;
- String colNames[] = {"Install", "Name", "Location"};
+ String colNames[] = {"", "Name", "Location"};
+ Object[] longValues = new Object[] {Boolean.TRUE, "Name", "Location"};
- MyTableModel(Properties properties, String [] validVersions) {
+ MyTableModel (Properties properties, String [] validVersions) {
data = new ArrayList();
//System.out.println(properties);
@@ -187,8 +252,17 @@ class MyTableModel extends AbstractTableModel {
if ((path = properties.getProperty(key)) != null) {
ArrayList row = new ArrayList();
row.add(0, new Boolean(false));
+
row.add(1, key);
- row.add(2, properties.getProperty(key));
+ if (key.length() > ((String)longValues[1]).length()) {
+ longValues[1] = key;
+ }
+
+ row.add(2, path);
+ if (path.length() > ((String)longValues[2]).length()) {
+ longValues[2] = path;
+ }
+
data.add(row);
}
}
@@ -207,6 +281,10 @@ class MyTableModel extends AbstractTableModel {
}
public Object getValueAt(int row, int col) {
+ if (row < 0 || row > getRowCount() ||
+ col < 0 || col > getColumnCount())
+ return null;
+
ArrayList aRow = (ArrayList)data.get(row);
return aRow.get(col);
}