📄 datagloveconfigpanel.java
字号:
// button buttonPanel = new JPanel(new GridBagLayout()); buttonPanel.setBorder(new TitledBorder("")); changeButton = new JButton(); changeButton.addActionListener(this); gbc = new GridBagConstraints(); gbc.anchor = GridBagConstraints.CENTER; gbc.insets = insets; buttonPanel.add(changeButton, gbc); gbc = new GridBagConstraints(); gbc.gridx = 0; gbc.gridy = 8; gbc.gridwidth = 5; gbc.anchor = GridBagConstraints.CENTER; gbc.insets = insets; gbc.fill = GridBagConstraints.HORIZONTAL; gbc.weightx = 1.0; editPanel.add(buttonPanel, gbc); // tabpane tabPane.addTab(ElanLocale.getString("Button.Add"), null); tabPane.addTab(ElanLocale.getString("Button.Change"), null); tabPane.addTab(ElanLocale.getString("Button.Delete"), null); tabPane.setComponentAt(0, editPanel); tabPane.setSelectedIndex(0); tabPane.addChangeListener(this); } /** * Applies localized strings to the ui elements. */ private void updateLocale() { tablePanel.setBorder(new TitledBorder(ElanLocale.getString( "TimeSeriesViewer.Config.CurrentTracks"))); titleLabel.setText(ElanLocale.getString( "TimeSeriesViewer.Config.Tracks.Title")); selectTrackLabel.setText(ElanLocale.getString( "TimeSeriesViewer.Config.SelectTrack")); trackNameLabel.setText(ElanLocale.getString( "TimeSeriesViewer.Config.TrackName")); trackDescLabel.setText(ElanLocale.getString( "TimeSeriesViewer.Config.TrackDesc")); sampleLabel.setText(ElanLocale.getString( "TimeSeriesViewer.Config.SampleCell")); singleCellRB.setText(ElanLocale.getString( "TimeSeriesViewer.Config.SingleCell")); rowLabel.setText(ElanLocale.getString( "TimeSeriesViewer.Config.SampleRow")); columnLabel.setText(ElanLocale.getString( "TimeSeriesViewer.Config.SampleColumn")); multiCellRB.setText(ElanLocale.getString( "TimeSeriesViewer.Config.MultiCell")); multiCellButton.setText(ElanLocale.getString( "TimeSeriesViewer.Config.MultiCellConfig")); rangeLabel.setText(ElanLocale.getString("TimeSeriesViewer.Config.Range")); calcRangeRB.setText(ElanLocale.getString( "TimeSeriesViewer.Config.RangeCalc")); manRangeRB.setText(ElanLocale.getString( "TimeSeriesViewer.Config.RangeManual")); minLabel.setText(ElanLocale.getString( "TimeSeriesViewer.Config.RangeMinimum")); maxLabel.setText(ElanLocale.getString( "TimeSeriesViewer.Config.RangeMaximum")); deriveLabel.setText(ElanLocale.getString( "TimeSeriesViewer.Config.Derivative")); unitLabel.setText(ElanLocale.getString("TimeSeriesViewer.Config.Units")); colorLabel.setText(ElanLocale.getString( "TimeSeriesViewer.Config.TrackColor")); colorButton.setText("..."); changeButton.setText(ElanLocale.getString("Button.Add")); } /** * Updates texts and enables/disables components for the current edit * mode. */ private void updateForMode() { switch (mode) { case ADD: currentTracksCB.setEnabled(false); trackNameTF.setEnabled(true); trackNameTF.setEditable(true); trackDescTF.setEnabled(true); trackDescTF.setEditable(true); rowSpinner.setEnabled(true); colSpinner.setEnabled(true); if (manRangeRB.isSelected()) { minTF.setEnabled(true); minTF.setEditable(true); maxTF.setEnabled(true); maxTF.setEditable(true); } deriv0RB.setEnabled(true); deriv1RB.setEnabled(true); deriv2RB.setEnabled(true); deriv3RB.setEnabled(true); unitTF.setEnabled(true); unitTF.setEditable(true); colorButton.setEnabled(true); changeButton.setText(ElanLocale.getString("Button.Add")); break; case CHANGE: currentTracksCB.setEnabled(true); trackNameTF.setEnabled(true); trackNameTF.setEditable(true); trackDescTF.setEnabled(true); trackDescTF.setEditable(true); rowSpinner.setEnabled(false); colSpinner.setEnabled(false); if (manRangeRB.isSelected()) { minTF.setEnabled(true); minTF.setEditable(true); maxTF.setEnabled(true); maxTF.setEditable(true); } deriv0RB.setEnabled(false); deriv1RB.setEnabled(false); deriv2RB.setEnabled(false); deriv3RB.setEnabled(false); unitTF.setEnabled(true); unitTF.setEditable(true); colorButton.setEnabled(true); changeButton.setText(ElanLocale.getString("Button.Change")); break; case DELETE: currentTracksCB.setEnabled(true); trackNameTF.setEnabled(false); trackNameTF.setEditable(false); trackDescTF.setEnabled(false); trackDescTF.setEditable(false); rowSpinner.setEnabled(false); colSpinner.setEnabled(false); minTF.setEnabled(false); minTF.setEditable(false); maxTF.setEnabled(false); maxTF.setEditable(false); deriv0RB.setEnabled(false); deriv1RB.setEnabled(false); deriv2RB.setEnabled(false); deriv3RB.setEnabled(false); unitTF.setEnabled(false); unitTF.setEditable(false); colorButton.setEnabled(false); changeButton.setText(ElanLocale.getString("Button.Delete")); break; } } private void updateForTrack(String trackName) { if (trackName == null) { // empty the fields trackNameTF.setText(""); trackDescTF.setText(""); unitTF.setText(""); rowSpinner.setValue(new Integer(0)); colSpinModel.setMaximum(new Integer(DataGloveConstants.COLS_PER_ROW[0] - 1)); colSpinner.setValue(new Integer(0)); minTF.setValue(new Float(0)); maxTF.setValue(new Float(100)); deriv0RB.setSelected(true); colorButton.setBackground(Color.GREEN); trackTable.getSelectionModel().clearSelection(); return; } // get current track TSTrackConfiguration tst; for (int i = 0; i < tracks.size(); i++) { tst = (TSTrackConfiguration) tracks.get(i); if (tst.getTrackName().equals(trackName)) { currentTrack = tst; break; } } if (currentTrack != null) { AbstractTSTrack track = (AbstractTSTrack) currentTrack.getObject(currentTrack.getTrackName()); if (currentTracksCB.getSelectedItem() != currentTrack.getTrackName()) { currentTracksCB.setSelectedItem(currentTrack.getTrackName()); } String tmp; trackNameTF.setText(currentTrack.getTrackName()); // info from track if (track != null) { tmp = track.getDescription(); if (tmp != null) { trackDescTF.setText(tmp); } else { trackDescTF.setText(""); } tmp = track.getUnitString(); if (tmp != null) { unitTF.setText(tmp); } else { unitTF.setText(""); } if ("true".equals(currentTrack.getProperty( TimeSeriesConstants.AUTO_DETECT_RANGE))) { calcRangeRB.setSelected(true); minTF.setEnabled(false); minTF.setEditable(false); maxTF.setEnabled(false); maxTF.setEditable(false); } else { manRangeRB.setSelected(true); minTF.setEnabled(true); minTF.setEditable(true); maxTF.setEnabled(true); maxTF.setEditable(true); } float[] range = track.getRange(); if (range != null) { minTF.setValue(new Float(range[0])); maxTF.setValue(new Float(range[1])); } else { minTF.setValue(new Float(0)); maxTF.setValue(new Float(100)); } int deriv = track.getDerivativeLevel(); switch (deriv) { case 1: deriv1RB.setSelected(true); break; case 2: deriv2RB.setSelected(true); break; case 3: deriv3RB.setSelected(true); break; default: deriv0RB.setSelected(true); } Color c = (Color) track.getColor(); if (c != null) { colorButton.setBackground(c); } else { colorButton.setBackground(Color.GREEN); } } else { trackDescTF.setText(""); unitTF.setText(""); deriv0RB.setSelected(true); colorButton.setBackground(Color.GREEN); } SamplePosition spos = currentTrack.getSamplePos(); if (spos != null) { int[] rows = spos.getRows(); int[] cols = spos.getColumns(); if (rows.length == 1) { singleCellRB.setSelected(true); rowSpinner.setValue(new Integer(rows[0])); colSpinModel.setMaximum(new Integer(DataGloveConstants.COLS_PER_ROW[rows[0]] - 1)); colSpinner.setValue(new Integer(cols[0])); } else { multiCellRB.setSelected(true); } } // update table if (model != null) { int col = model.findColumn(TrackTableModel.NAME); trackTable.getSelectionModel().removeListSelectionListener(this); for (int i = 0; i < model.getRowCount(); i++) { if (currentTrack.getTrackName().equals(model.getValueAt(i, col))) { trackTable.getSelectionModel().setLeadSelectionIndex(i); break; } } trackTable.getSelectionModel().addListSelectionListener(this); } } } /** * Updates table and combo boxes with the information of the current * tracks. */ private void reextractTracks() { currentTracksCB.removeItemListener(this); currentTracksCB.removeAllItems(); model.removeAllRows(); TSTrackConfiguration tr; for (int i = 0; i < tracks.size(); i++) { tr = (TSTrackConfiguration) tracks.get(i); currentTracksCB.addItem(tr.getTrackName()); model.addRow(tr); } currentTracksCB.addItemListener(this); } /** * Notifies registered listeners of a TimeSeries change event. * * @param ev the event */ private void notifyListeners(TimeSeriesChangeEvent ev) { if (listeners != null) { for (int i = 0; i < listeners.size(); i++) { ((TimeSeriesChangeListener) listeners.get(i)).timeSeriesChanged(ev); } } } /** * Sets the file reader to use for the creation of tracks. * * @param reader the log file reader */ public void setReader(DataGloveFileReader reader) { this.reader = reader; } /** * @see mpi.eudico.server.timeseries.spi.TSConfigPanel#addTimeSeriesChangeListener(mpi.eudico.server.timeseries.TimeSeriesChangeListener) */ public void addTimeSeriesChangeListener(TimeSeriesChangeListener li) { if (listeners == null) { listeners = new ArrayList(); } listeners.add(li); } /** * @see mpi.eudico.server.timeseries.spi.TSConfigPanel#setSourceConfiguration(mpi.eudico.server.timeseries.TSSourceConfiguration) */ public void setSourceConfiguration(TSSourceConfiguration tssc) { if (tssc == null) { return; } tracks.clear(); config = tssc; sourceLabel.setText(config.getSource()); // update ui Iterator trit = config.objectKeySet().iterator(); Object val; while (trit.hasNext()) { val = config.getObject(trit.next()); if (val instanceof TSTrackConfiguration) { tracks.add(val); } } // update table and current track box currentTracksCB.removeItemListener(this); currentTracksCB.removeAllItems(); trackTable.getSelectionModel().removeListSelectionListener(this); model.removeAllRows(); TSTrackConfiguration tr; for (int i = 0; i < tracks.size(); i++) { tr = (TSTrackConfiguration) tracks.get(i); currentTracksCB.addItem(tr.getTrackName()); model.addRow(tr); } currentTracksCB.addItemListener(this); trackTable.getSelectionModel().addListSelectionListener(this);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -