/** * Die Spalte verstecken. * * @param iColumnIndex der Index der Spalte * @param iColumnWidth doe absolute Breite der Spalte */ private void setColumnWidthToZero(int iColumnIndex) { TableColumn tc = table.getColumnModel().getColumn(iColumnIndex); tc.setMinWidth(0); tc.setPreferredWidth(0); boolean showIIds = iColumnIndex == 0 && Defaults.getInstance().isShowIIdColumn(); tc.setMaxWidth(showIIds ? Helper.getBreiteInPixel(QueryParameters.FLR_BREITE_M) : 0); tc.setResizable(showIIds); }
/** * Die absoulte Breite einer Spalte festlegen. * * @param iColumnIndex der Index der Spalte * @param iColumnWidth die absolute Breite der Spalte */ protected void setColumnWidth(int iColumnIndex, int iColumnWidth) { if (iColumnWidth == 0) { setColumnWidthToZero(iColumnIndex); return; } TableColumn tc = table.getColumnModel().getColumn(iColumnIndex); tc.setMinWidth(Helper.getBreiteInPixel(QueryParameters.FLR_BREITE_MINIMUM)); // tc.setMaxWidth(iColumnWidth); // tc.setMinWidth(iColumnWidth); tc.setPreferredWidth(iColumnWidth); tc.setWidth(iColumnWidth); }
/** * Initialisiere alle Komponenten; braucht der JBX-Designer; hier bitte keine wilden Dinge wie zum * Server gehen, etc. machen. * * @throws Exception */ private void jbInit() throws Exception { // das Aussenpanel hat immer das Gridbaglayout und einen Rahmen nach // innen von 10 gridBagLayoutAll = new GridBagLayout(); setLayout(gridBagLayoutAll); // auf dem Aussenpanel wird die Toolbar angebracht add( getToolsPanel(), new GridBagConstraints( 0, 0, 1, 1, 1, 0.0, GridBagConstraints.NORTHWEST, GridBagConstraints.HORIZONTAL, new Insets(0, 0, 0, 0), 0, 0)); // CK: Listen-Druck-Icon einbauen // JButton bPrint = createAndSaveButton( // "/com/lp/client/res/table_sql_view.png", // LPMain.getTextRespectUISPr("lp.printer"), // LEAVEALONE_PRINTPANELQUERY, null, null); // bPrint.setEnabled(true); getToolBar() .addButtonRight( "/com/lp/client/res/table_sql_view.png", LPMain.getTextRespectUISPr("lp.printer"), LEAVEALONE_PRINTPANELQUERY, null, null); enableToolsPanelButtons(true, LEAVEALONE_PRINTPANELQUERY); // getToolBar().getToolsPanelRight().add(bPrint); // auf dem Aussenpanel wird ausserdem das WorkingPanel angebracht, das // alles andere enthaelt panelWorkingOn = new JPanel(); gridBagLayoutWorkingOn = new GridBagLayout(); panelWorkingOn.setLayout(gridBagLayoutWorkingOn); add( panelWorkingOn, new GridBagConstraints( 0, 1, 1, 1, 1.0, 1.0, GridBagConstraints.SOUTH, GridBagConstraints.BOTH, new Insets(0, 0, 0, 0), 0, 0)); // Zeile - das Panel mit den Filterkriterien panelWorkingOn.add( getPanelFilterKriterien(), new GridBagConstraints( 0, iYGridBagNext, 1, 1, 1.0, 0.0, GridBagConstraints.NORTH, GridBagConstraints.HORIZONTAL, new Insets(0, 0, 0, 0), 0, 0)); // Zeile - das Panel fuer die optionale zweite Zeile iYGridBagNext++; panelWorkingOn.add( getPanelOptionaleZweiteZeile(), new GridBagConstraints( 0, iYGridBagNext, 1, 1, 1.0, 0.0, GridBagConstraints.NORTH, GridBagConstraints.HORIZONTAL, new Insets(0, 0, 0, 0), 0, 0)); // Zeile iYGridBagNext++; dataSource = new DistributedTableDataSourceImpl(new Integer(idUsecase)); tableModel = new DistributedTableModelImpl(this.dataSource); // String[] dbColumnNames = this.dataSource.getTableInfo() // .getDataBaseColumnNames(); this.table = new WrapperTable(getInternalFrame(), this.tableModel); this.table.setLocale(LPMain.getInstance().getUISprLocale()); // this.table.addKeyListener(this); // this.table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); // this.table.setSelectionMode(ListSelectionModel.SINGLE_INTERVAL_SELECTION); this.table.setColumnSelectionAllowed(false); this.table.setRowSelectionAllowed(false); // this.table.addMouseListener(this); // Feature Spalten mit der Maus verschieben deaktivieren table.getTableHeader().setReorderingAllowed(false); tableScrollPane = new JScrollPane(table); tableScrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED); tableScrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED); // die Tabelle hat ein hellgraues Gitter table.setGridColor(HelperClient.getHintergrundColor()); // die erste Spalte ist immer der ZeilenHeader TableColumn tcZeilenHeader = table.getColumnModel().getColumn(0); tcZeilenHeader.setCellRenderer(new ZeilenHeaderRenderer()); // tcZeilenHeader.setPreferredWidth(SPALTENBREITE_ZEILENHEADER); /** @todo das kommt 2 mal vor -> eine Methode */ // die restlichen Spalten werden per default formatiert // die Breite der Spalten einstellen columnHeaderWidths = dataSource.getTableInfo().getColumnHeaderWidths(); if (columnHeaderWidths != null) { for (int i = 1; i < columnHeaderWidths.length; i++) { // alle Spalten mit -1 sind variabel if (columnHeaderWidths[i] != -1) { setColumnWidth(i, Helper.getBreiteInPixel(columnHeaderWidths[i])); } } } // die letzte Spalte Verstecken, wenn Color Class<?> letzteKlasse = dataSource.getColumnClasses()[dataSource.getColumnClasses().length - 1]; if (letzteKlasse.equals(java.awt.Color.class)) { setColumnWidthToZero(dataSource.getColumnClasses().length - 1); } table.setAutoResizeMode(JTable.AUTO_RESIZE_SUBSEQUENT_COLUMNS); // Zeile iYGridBagNext++; panelWorkingOn.add( tableScrollPane, new GridBagConstraints( 0, iYGridBagNext, 1, 1, 1.0, 0.7, GridBagConstraints.SOUTH, GridBagConstraints.BOTH, new Insets(0, 0, 0, 0), 0, 0)); }