Changeset 8432
- Timestamp:
- 2004-11-03T11:31:46+13:00 (19 years ago)
- Location:
- trunk/gli/src/org/greenstone/gatherer
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/gli/src/org/greenstone/gatherer/gui/metaaudit/MetaAuditTable.java
r8313 r8432 57 57 private boolean initial_state; 58 58 59 private boolean ready;60 61 59 private Filter filter; 62 60 … … 64 62 65 63 private MetaAuditFrame parent_frame; 64 65 private MetaAuditRenderer cell_renderer; 66 66 67 67 private MetadataAuditTableModel metadata_audit_table_model; … … 73 73 public MetaAuditTable(MetaAuditFrame parent_frame) { 74 74 super(); 75 this.cell_renderer = new MetaAuditRenderer(); 75 76 this.header_renderer = new HeaderRenderer(); 76 77 this.parent_frame = parent_frame; 77 78 getTableHeader().addMouseListener(new HeaderListener(parent_frame, this)); 78 79 setAutoResizeMode(AUTO_RESIZE_OFF); 79 setDefaultRenderer(ArrayList.class, new MetaAuditRenderer());80 ready = true;81 80 } 82 81 … … 120 119 TableColumnModel column_model = getColumnModel(); 121 120 for(int i = 0; i < column_model.getColumnCount(); i++) { 121 column_model.getColumn(i).setCellRenderer(cell_renderer); 122 122 column_model.getColumn(i).setHeaderRenderer(header_renderer); 123 123 } … … 129 129 wait(true); 130 130 super.tableChanged(e); 131 if(ready) { 132 // Create storage area 133 ArrayList heights[] = new ArrayList[dataModel.getRowCount()]; 134 int widths_value[] = new int[dataModel.getColumnCount()]; 135 ArrayList widths[] = new ArrayList[dataModel.getColumnCount()]; 136 // Iterate through cell values finding tallest and widest for each row and column respectively. 137 for(int j = 0; j < dataModel.getRowCount(); j++) { 138 for(int k = 0; k < dataModel.getColumnCount(); k++) { 139 Object object = dataModel.getValueAt(j, k); 140 if(object instanceof ArrayList) { 141 ArrayList data = (ArrayList) object; 142 if(heights[j] == null || data.size() > heights[j].size()) { 143 heights[j] = data; 131 132 // Create storage area 133 ArrayList heights[] = new ArrayList[dataModel.getRowCount()]; 134 int widths_value[] = new int[dataModel.getColumnCount()]; 135 ArrayList widths[] = new ArrayList[dataModel.getColumnCount()]; 136 137 // Iterate through cell values finding tallest and widest for each row and column respectively. 138 for (int j = 0; j < dataModel.getRowCount(); j++) { 139 for (int k = 0; k < dataModel.getColumnCount(); k++) { 140 Object object = dataModel.getValueAt(j, k); 141 if (object instanceof ArrayList) { 142 ArrayList data = (ArrayList) object; 143 if (heights[j] == null || data.size() > heights[j].size()) { 144 heights[j] = data; 145 } 146 String longest = ""; 147 for (int i = 0; i < data.size(); i++) { 148 String temp = data.get(i).toString(); 149 if (temp.length() > longest.length()) { 150 longest = temp; 144 151 } 145 String longest = ""; 146 for(int i = 0; i < data.size(); i++) { 147 String temp = data.get(i).toString(); 148 if(temp.length() > longest.length()) { 149 longest = temp; 150 } 151 temp = null; 152 } 153 if(widths[k] == null || longest.length() > widths_value[k]) { 154 widths_value[k] = longest.length(); 155 widths[k] = data; 156 } 157 longest = null; 158 data = null; 152 } 153 if (widths[k] == null || longest.length() > widths_value[k]) { 154 widths_value[k] = longest.length(); 155 widths[k] = data; 159 156 } 160 157 } 161 158 } 162 // Now assign the dimensions we have determined to be the largest. 163 TableCellRenderer renderer = getDefaultRenderer(ArrayList.class); 164 for(int l = 0; l < heights.length; l++) { 165 if(heights[l] != null) { 166 Component component = renderer.getTableCellRendererComponent(this, heights[l], false, false, 0, 0); 167 Dimension size = component.getPreferredSize(); 168 setRowHeight(l, size.height); 169 size = null; 170 component = null; 159 } 160 161 // Now assign the dimensions we have determined to be the largest. 162 for (int l = 0; l < heights.length; l++) { 163 if (heights[l] != null) { 164 Component component = cell_renderer.getTableCellRendererComponent(this, heights[l], false, false, 0, 0); 165 Dimension size = component.getPreferredSize(); 166 setRowHeight(l, size.height); 167 } 168 } 169 for (int m = 0; m < widths.length; m++) { 170 if (widths[m] != null) { 171 Component component = cell_renderer.getTableCellRendererComponent(this, widths[m], false, false, 0, 0); 172 Dimension size = component.getPreferredSize(); 173 int width = size.width + MARGIN; 174 if (width > (2 * parent_frame.getSize().width) / 3) { 175 width = (2 * parent_frame.getSize().width) / 3; 171 176 } 177 178 Component header = header_renderer.getTableCellRendererComponent(this, dataModel.getColumnName(m), false, false, 0, 0); 179 if (header.getPreferredSize().width + MARGIN > width) { 180 width = header.getPreferredSize().width + MARGIN; 181 } 182 columnModel.getColumn(m).setPreferredWidth(width); 172 183 } 173 heights = null;174 for(int m = 0; m < widths.length; m++) {175 if(widths[m] != null) {176 Component component = renderer.getTableCellRendererComponent(this, widths[m], false, false, 0, 0);177 Dimension size = component.getPreferredSize();178 int width = size.width + MARGIN;179 if(width > (2 * parent_frame.getSize().width) / 3) {180 width = (2 * parent_frame.getSize().width) / 3;181 }182 Component header = header_renderer.getTableCellRendererComponent(this, dataModel.getColumnName(m), false, false, 0, 0);183 if(header.getPreferredSize().width + MARGIN > width) {184 width = header.getPreferredSize().width + MARGIN;185 }186 columnModel.getColumn(m).setPreferredWidth(width);187 size = null;188 component = null;189 }190 }191 widths = null;192 renderer = null;193 184 } 185 194 186 wait(initial_state); 195 187 } 188 196 189 197 190 public void sortOrderChanged(TableModelSorterEvent event) { -
trunk/gli/src/org/greenstone/gatherer/metadata/MetadataAuditTableModel.java
r8240 r8432 34 34 import javax.swing.table.*; 35 35 import org.greenstone.gatherer.Configuration; 36 import org.greenstone.gatherer.DebugStream;37 36 import org.greenstone.gatherer.file.FileNode; 38 37 … … 74 73 for (int i = 0; i < metadata_audit_table_entries.size(); i++) { 75 74 MetadataAuditTableEntry metadata_audit_table_entry = (MetadataAuditTableEntry) metadata_audit_table_entries.get(i); 76 MetadataValueTreeNode metadata_value_tree_node = metadata_audit_table_entry.getMetadataValueTreeNode(col); 77 column_values.add(metadata_value_tree_node.toString()); 75 MetadataValueTreeNode[] metadata_value_tree_nodes = metadata_audit_table_entry.getMetadataValueTreeNodes(col); 76 if (metadata_value_tree_nodes != null) { 77 for (int j = 0; j < metadata_value_tree_nodes.length; j++) { 78 column_values.add(metadata_value_tree_nodes[j].toString()); 79 } 80 } 78 81 } 79 82 … … 97 100 } 98 101 102 ArrayList cell_values = new ArrayList(); 99 103 MetadataAuditTableEntry metadata_audit_table_entry = (MetadataAuditTableEntry) metadata_audit_table_entries.get(row); 100 return metadata_audit_table_entry.getMetadataValueTreeNode(col); 104 MetadataValueTreeNode[] metadata_value_tree_nodes = metadata_audit_table_entry.getMetadataValueTreeNodes(col); 105 if (metadata_value_tree_nodes != null) { 106 for (int j = 0; j < metadata_value_tree_nodes.length; j++) { 107 cell_values.add(metadata_value_tree_nodes[j].toString()); 108 } 109 } 110 111 return cell_values; 101 112 } 102 113 … … 144 155 { 145 156 private File file = null; 146 private MetadataValue[] metadata_values = null;157 private ArrayList[] metadata_values = null; 147 158 148 159 … … 151 162 this.file = file; 152 163 153 metadata_values = new MetadataValue[metadata_elements.size()]; 164 metadata_values = new ArrayList[metadata_elements.size()]; 165 for (int i = 0; i < metadata_values.length; i++) { 166 metadata_values[i] = new ArrayList(); 167 } 168 154 169 for (int i = 0; i < metadata_values_list.size(); i++) { 155 170 MetadataValue metadata_value = (MetadataValue) metadata_values_list.get(i); … … 159 174 for (int j = 0; j < metadata_elements.size(); j++) { 160 175 if (metadata_element.equals(metadata_elements.get(j))) { 161 metadata_values[j] = metadata_value;176 metadata_values[j].add(metadata_value); 162 177 break; 163 178 } … … 167 182 168 183 169 public MetadataValueTreeNode getMetadataValueTreeNode(int col) 170 { 171 if (metadata_values[col] == null) { 172 return null; 184 public MetadataValueTreeNode[] getMetadataValueTreeNodes(int col) 185 { 186 ArrayList metadata_values_list = metadata_values[col]; 187 if (metadata_values_list == null) { 188 return null; 189 } 190 191 MetadataValueTreeNode[] metadata_value_tree_nodes = new MetadataValueTreeNode[metadata_values_list.size()]; 192 for (int i = 0; i < metadata_values_list.size(); i++) { 193 metadata_value_tree_nodes[i] = ((MetadataValue) metadata_values_list.get(i)).getMetadataValueTreeNode(); 173 194 } 174 195 175 return metadata_values[col].getMetadataValueTreeNode();176 }196 return metadata_value_tree_nodes; 197 } 177 198 } 178 199 }
Note:
See TracChangeset
for help on using the changeset viewer.