Exemplo n.º 1
0
  /**
   * eventActionRefresh
   *
   * @param e ActionEvent
   * @param bNeedNoRefreshI boolean
   * @throws Throwable
   * @todo Diese com.lp.client.ui2.LPPanel-Methode implementieren PJ 5110
   */
  protected void eventActionRefresh(ActionEvent e, boolean bNeedNoRefreshI) throws Throwable {
    long tStart = System.currentTimeMillis();
    FilterBlock filter = new FilterBlock(aDefaultFilter, FilterKriterium.BOOLOPERATOR_AND);

    table.invalidate();
    QueryParameters query =
        new QueryParameters(new Integer(this.idUsecase), null, filter, null, null);

    tableModel.setQuery(query);

    table.revalidate();
    table.repaint();

    // wenn der Zeilen Header angezeigt werden soll, farblich kennzeichnen
    // table.getColumnModel().getColumn(0).
    // table.getColumnModel().getColumn(0).setWidth(0);
    // table.getColumnModel().getColumn(0).setMaxWidth(0);
    // table.getColumnModel().getColumn(0).setMinWidth(0);
    // table.getColumnModel().getColumn(0).setPreferredWidth(0);

    // @uw bei einem PanelSplit muss die Detailanzeige auch refresh kriegen
    // getInternalFrame().fireItemChanged(this,
    // ItemChangedEvent.ITEM_CHANGED);
    long tEnd = System.currentTimeMillis();
    myLogger.info("refresh PanelTabelle UC=" + this.idUsecase + ": " + (tEnd - tStart) + " [ms]");
  }
Exemplo n.º 2
0
 public static HashMap<UUID, MechanicWrapper> findWrappers(Database db, Type type) {
   HashMap<UUID, MechanicWrapper> wrappers = new HashMap<UUID, MechanicWrapper>();
   for (WrapperTable t :
       db.select(WrapperTable.class).where().equal("type", type).execute().find())
     wrappers.put(t.getUUID(), t.getWrapper());
   return wrappers;
 }
Exemplo n.º 3
0
 /**
  * Steuert die Sichtbarkeit der ersten Spalte in der Tabelle. <br>
  * Die erste Spalte enthaelt die Zeilenheader.
  *
  * @param bVisibleI boolean
  */
 public void setFirstColumnVisible(boolean bVisibleI) {
   if (bVisibleI) {
     table.getColumnModel().getColumn(0).setWidth(SPALTENBREITE_ZEILENHEADER);
     table.getColumnModel().getColumn(0).setMaxWidth(SPALTENBREITE_ZEILENHEADER);
     table.getColumnModel().getColumn(0).setMinWidth(SPALTENBREITE_ZEILENHEADER);
     table.getColumnModel().getColumn(0).setPreferredWidth(SPALTENBREITE_ZEILENHEADER);
   } else {
     setColumnWidthToZero(0);
   }
 }
Exemplo n.º 4
0
  /**
   * 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);
  }
Exemplo n.º 5
0
 @Override
 protected void paintComponent(Graphics g) {
   super.paintComponent(g);
   if (strechColumns && table.getWidth() > 0) {
     strechColumns = false;
     strechShareWithRestColumns(columnHeaderWidths);
     repaint();
   }
 }
Exemplo n.º 6
0
  private void strechShareWithRestColumns(int[] columnWidths) {
    if (columnWidths == null) return;
    List<TableColumn> columnsToStrech = new ArrayList<TableColumn>();
    int alreadyDefinedSize = 0;
    for (int i = 1; i < columnWidths.length - 1; i++) {
      TableColumn tc = table.getColumnModel().getColumn(i);
      if (columnWidths[i] == -1 && tc.getMaxWidth() > 0) columnsToStrech.add(tc);
      else alreadyDefinedSize += tc.getPreferredWidth();
    }

    if (columnsToStrech.size() == 0) return;

    int sharedTotal = table.getColumnModel().getTotalColumnWidth() - alreadyDefinedSize;
    for (TableColumn tc : columnsToStrech) {
      int newSize = sharedTotal / columnsToStrech.size();
      tc.setPreferredWidth(newSize);
      tc.setWidth(newSize);
    }
  }
Exemplo n.º 7
0
  /**
   * 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);
  }
Exemplo n.º 8
0
 /* Wrapper Methods */
 public static void saveWrapper(Database db, MechanicWrapper mw) {
   WrapperTable wt = new WrapperTable();
   wt.setWrapper(mw);
   saveWrapperTable(db, wt);
 }
Exemplo n.º 9
0
  /**
   * 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));
  }