⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 datagloveconfigpanel.java

📁 编辑视频文件
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
/* * File:     DataGloveConfigPanel.java * Project:  MPI Linguistic Application * Date:     02 May 2007 * * Copyright (C) 2001-2007  Max Planck Institute for Psycholinguistics * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA */package mpi.eudico.client.annotator.timeseries.glove;import mpi.eudico.client.annotator.ElanLocale;import mpi.eudico.client.annotator.timeseries.AbstractTSTrack;import mpi.eudico.client.annotator.timeseries.ContinuousRateTSTrack;import mpi.eudico.client.annotator.timeseries.TimeSeriesChangeEvent;import mpi.eudico.client.annotator.timeseries.TimeSeriesChangeListener;import mpi.eudico.client.annotator.timeseries.TimeSeriesConstants;import mpi.eudico.client.annotator.timeseries.TimeSeriesTrack;import mpi.eudico.client.annotator.timeseries.TrackTableModel;import mpi.eudico.client.annotator.timeseries.config.SamplePosition;import mpi.eudico.client.annotator.timeseries.config.TSSourceConfiguration;import mpi.eudico.client.annotator.timeseries.config.TSTrackConfiguration;import mpi.eudico.client.annotator.timeseries.spi.TSConfigPanel;import mpi.eudico.client.annotator.util.ClientLogger;import java.awt.Color;import java.awt.Dimension;import java.awt.GridBagConstraints;import java.awt.GridBagLayout;import java.awt.Insets;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.ItemEvent;import java.awt.event.ItemListener;import java.io.IOException;import java.text.NumberFormat;import java.util.ArrayList;import java.util.Iterator;import java.util.Locale;import javax.swing.ButtonGroup;import javax.swing.JButton;import javax.swing.JColorChooser;import javax.swing.JComboBox;import javax.swing.JFormattedTextField;import javax.swing.JLabel;import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing.JRadioButton;import javax.swing.JScrollPane;import javax.swing.JSpinner;import javax.swing.JTabbedPane;import javax.swing.JTable;import javax.swing.JTextField;import javax.swing.ListSelectionModel;import javax.swing.SpinnerNumberModel;import javax.swing.SwingConstants;import javax.swing.border.TitledBorder;import javax.swing.event.ChangeEvent;import javax.swing.event.ChangeListener;import javax.swing.event.ListSelectionEvent;import javax.swing.event.ListSelectionListener;/** * A configuration panel for the MPI dataglove file. * * @author Han Sloetjes */public class DataGloveConfigPanel extends TSConfigPanel    implements ActionListener, ItemListener, ChangeListener,        ListSelectionListener, ClientLogger {    /** the add mode */    public static final int ADD = 0;    /** the change mode */    public static final int CHANGE = 1;    /** the delete mode */    public static final int DELETE = 2;    private TSSourceConfiguration config;    private ArrayList listeners;    private DataGloveFileReader reader;    private TSTrackConfiguration currentTrack;    private ArrayList tracks;    private int mode = ADD;    // ui components    private JLabel titleLabel;    private JLabel sourceLabel;    private JPanel tablePanel;    private JTable trackTable;    private JTabbedPane tabPane;    private TrackTableModel model;    // ui elements for edit panel    private JPanel editPanel;    private JLabel selectTrackLabel;    private JComboBox currentTracksCB;    private JLabel trackNameLabel;    private JTextField trackNameTF;    private JLabel trackDescLabel;    private JTextField trackDescTF;    private JLabel sampleLabel;    private JPanel singleCellPanel;    private JRadioButton singleCellRB;    private JLabel rowLabel;    private JSpinner rowSpinner;    private SpinnerNumberModel rowSpinModel;    private JLabel columnLabel;    private JSpinner colSpinner;    private SpinnerNumberModel colSpinModel;    private JPanel multiCellPanel;    private JRadioButton multiCellRB;    private JButton multiCellButton;    private JLabel rangeLabel;    private JPanel rangePanel;    private JRadioButton calcRangeRB;    private JRadioButton manRangeRB;    private JLabel minLabel;    private JFormattedTextField minTF;    private JLabel maxLabel;    private JFormattedTextField maxTF;    private JLabel deriveLabel;    private JRadioButton deriv0RB;    private JRadioButton deriv1RB;    private JRadioButton deriv2RB;    private JRadioButton deriv3RB;    private JLabel unitLabel;    private JTextField unitTF;    private JLabel colorLabel;    private JButton colorButton;    // buttonpanel    private JButton changeButton;    private JPanel buttonPanel;    /**     * Creates a new DataGloveConfigPanel instance     */    public DataGloveConfigPanel() {        tracks = new ArrayList();        initComponents();        updateLocale();        updateForMode();    }    private void initComponents() {        setLayout(new GridBagLayout());        Insets insets = new Insets(2, 6, 2, 6);        titleLabel = new JLabel();        titleLabel.setFont(titleLabel.getFont().deriveFont((float) 16));        titleLabel.setHorizontalAlignment(SwingConstants.CENTER);        sourceLabel = new JLabel();        sourceLabel.setFont(titleLabel.getFont().deriveFont((float) 10));        sourceLabel.setHorizontalAlignment(SwingConstants.CENTER);        tablePanel = new JPanel();        tablePanel.setLayout(new GridBagLayout());        model = new TrackTableModel();        trackTable = new JTable(model);        trackTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);        trackTable.getSelectionModel().addListSelectionListener(this);        JScrollPane tableScrollPane = new JScrollPane(trackTable);        Dimension size = new Dimension(500, 100);        tableScrollPane.setMinimumSize(size);        tableScrollPane.setPreferredSize(size);        tabPane = new JTabbedPane();        GridBagConstraints gbc = new GridBagConstraints();        gbc.fill = GridBagConstraints.HORIZONTAL;        gbc.anchor = GridBagConstraints.NORTH;        gbc.insets = new Insets(6, 6, 6, 6);        gbc.weightx = 1.0;        add(titleLabel, gbc);        gbc.gridy = 1;        gbc.insets = insets;        add(sourceLabel, gbc);        gbc = new GridBagConstraints();        gbc.fill = GridBagConstraints.BOTH;        gbc.anchor = GridBagConstraints.NORTHWEST;        gbc.insets = insets;        gbc.weightx = 1.0;        gbc.weighty = 1.0;        tablePanel.add(tableScrollPane, gbc);        gbc = new GridBagConstraints();        gbc.gridy = 2;        gbc.fill = GridBagConstraints.BOTH;        gbc.anchor = GridBagConstraints.NORTHWEST;        gbc.insets = insets;        gbc.weightx = 1.0;        gbc.weighty = 1.0;        add(tablePanel, gbc);        gbc = new GridBagConstraints();        gbc.gridy = 3;        gbc.fill = GridBagConstraints.BOTH;        gbc.anchor = GridBagConstraints.NORTHWEST;        gbc.insets = new Insets(10, 6, 6, 6);        gbc.weightx = 1.0;        //gbc.weighty = 1.0;        add(tabPane, gbc);        // editpanel        editPanel = new JPanel(new GridBagLayout());        selectTrackLabel = new JLabel();        currentTracksCB = new JComboBox();        currentTracksCB.addItemListener(this);        trackNameLabel = new JLabel();        trackNameTF = new JTextField();        trackDescLabel = new JLabel();        trackDescTF = new JTextField();        sampleLabel = new JLabel();        singleCellPanel = new JPanel(new GridBagLayout());        singleCellRB = new JRadioButton();        singleCellRB.setSelected(true);        rowLabel = new JLabel();        rowSpinModel = new SpinnerNumberModel();        rowSpinModel.setMinimum(new Integer(0));        rowSpinModel.setMaximum(new Integer(DataGloveConstants.MAX_NUM_ROWS -                1));        rowSpinner = new JSpinner(rowSpinModel);        rowSpinner.addChangeListener(this);        columnLabel = new JLabel();        colSpinModel = new SpinnerNumberModel();        colSpinModel.setMinimum(new Integer(0));        colSpinModel.setMaximum(new Integer(DataGloveConstants.COLS_PER_ROW[0] -                1));        colSpinner = new JSpinner(colSpinModel);        multiCellPanel = new JPanel(new GridBagLayout());        multiCellRB = new JRadioButton();        multiCellRB.setEnabled(false);        multiCellButton = new JButton();        multiCellButton.setEnabled(false);        rangeLabel = new JLabel();        rangePanel = new JPanel(new GridBagLayout());        calcRangeRB = new JRadioButton();        calcRangeRB.addChangeListener(this);        manRangeRB = new JRadioButton();        manRangeRB.setSelected(true);        manRangeRB.addChangeListener(this);        minLabel = new JLabel();        NumberFormat format = NumberFormat.getNumberInstance(Locale.ENGLISH);        format.setParseIntegerOnly(false);        minTF = new JFormattedTextField(format);        maxLabel = new JLabel();        maxTF = new JFormattedTextField(format);        deriveLabel = new JLabel();        deriv0RB = new JRadioButton("0");        deriv0RB.setSelected(true);        deriv1RB = new JRadioButton("1");        deriv2RB = new JRadioButton("2");        deriv3RB = new JRadioButton("3");        unitLabel = new JLabel();        unitTF = new JTextField();        colorLabel = new JLabel();        colorButton = new JButton();        colorButton.setBackground(Color.GREEN);        colorButton.addActionListener(this);        // configure sub panels        singleCellPanel.setBorder(new TitledBorder(""));        ButtonGroup group1 = new ButtonGroup();        group1.add(singleCellRB);        group1.add(multiCellRB);        GridBagConstraints subgbc = new GridBagConstraints();        subgbc.gridwidth = 2;        subgbc.anchor = GridBagConstraints.NORTHWEST;        subgbc.insets = insets;        subgbc.fill = GridBagConstraints.HORIZONTAL;        subgbc.weightx = 1.0;        singleCellPanel.add(singleCellRB, subgbc);        subgbc.gridy = 1;        subgbc.gridwidth = 1;        subgbc.fill = GridBagConstraints.NONE;        singleCellPanel.add(rowLabel, subgbc);        subgbc.gridy = 2;        singleCellPanel.add(columnLabel, subgbc);        subgbc.gridy = 1;        subgbc.gridx = 1;        subgbc.fill = GridBagConstraints.HORIZONTAL;        singleCellPanel.add(rowSpinner, subgbc);        subgbc.gridy = 2;        singleCellPanel.add(colSpinner, subgbc);        multiCellPanel.setBorder(new TitledBorder(""));        subgbc = new GridBagConstraints();        subgbc.anchor = GridBagConstraints.NORTHWEST;        subgbc.insets = insets;        subgbc.fill = GridBagConstraints.HORIZONTAL;        subgbc.weightx = 1.0;        multiCellPanel.add(multiCellRB, subgbc);        subgbc.gridy = 2;        multiCellPanel.add(multiCellButton, subgbc);        rangePanel.setBorder(new TitledBorder(""));        ButtonGroup group3 = new ButtonGroup();        group3.add(manRangeRB);        group3.add(calcRangeRB);        subgbc.gridy = 0;        subgbc.gridwidth = 2;        rangePanel.add(calcRangeRB, subgbc);        subgbc.gridy = 1;        rangePanel.add(manRangeRB, subgbc);        subgbc.gridy = 2;        subgbc.gridwidth = 1;        subgbc.fill = GridBagConstraints.NONE;        subgbc.weightx = 0.0;        rangePanel.add(minLabel, subgbc);        subgbc.gridy = 3;        rangePanel.add(maxLabel, subgbc);        subgbc.gridy = 2;        subgbc.gridx = 1;        subgbc.fill = GridBagConstraints.HORIZONTAL;        subgbc.weightx = 0.5;        subgbc.gridwidth = 1;        rangePanel.add(minTF, subgbc);        subgbc.gridy = 3;        rangePanel.add(maxTF, subgbc);        ButtonGroup group2 = new ButtonGroup();        group2.add(deriv0RB);        group2.add(deriv1RB);        group2.add(deriv2RB);        group2.add(deriv3RB);        // end subpanels        GridBagConstraints lgbc = new GridBagConstraints();        lgbc.anchor = GridBagConstraints.NORTHWEST;        lgbc.insets = insets;        editPanel.add(selectTrackLabel, lgbc);        GridBagConstraints rgbc = new GridBagConstraints();        rgbc.gridx = 1;        rgbc.gridwidth = 4;        rgbc.fill = GridBagConstraints.HORIZONTAL;        rgbc.anchor = GridBagConstraints.NORTHWEST;        rgbc.insets = insets;        rgbc.weightx = 1.0;        editPanel.add(currentTracksCB, rgbc);        lgbc.gridy = 1;        editPanel.add(trackNameLabel, lgbc);        rgbc.gridy = 1;        editPanel.add(trackNameTF, rgbc);        lgbc.gridy = 2;        editPanel.add(trackDescLabel, lgbc);        rgbc.gridy = 2;        editPanel.add(trackDescTF, rgbc);        lgbc.gridy = 3;        editPanel.add(sampleLabel, lgbc);        rgbc.gridy = 3;        rgbc.gridwidth = 2;        editPanel.add(singleCellPanel, rgbc);        rgbc.gridx = 3;        editPanel.add(multiCellPanel, rgbc);        lgbc.gridy = 4;        editPanel.add(rangeLabel, lgbc);        rgbc.gridx = 1;        rgbc.gridwidth = 4;        rgbc.gridy = 4;        editPanel.add(rangePanel, rgbc);        lgbc.gridy = 5;        editPanel.add(deriveLabel, lgbc);        rgbc.gridy = 5;        rgbc.gridwidth = 1;        editPanel.add(deriv0RB, rgbc);        rgbc.gridx = 2;        editPanel.add(deriv1RB, rgbc);        rgbc.gridx = 3;        editPanel.add(deriv2RB, rgbc);        rgbc.gridx = 4;        editPanel.add(deriv3RB, rgbc);        lgbc.gridy = 6;        editPanel.add(unitLabel, lgbc);        rgbc.gridy = 6;        rgbc.gridx = 1;        rgbc.gridwidth = 1;        editPanel.add(unitTF, rgbc);        lgbc.gridy = 7;        editPanel.add(colorLabel, lgbc);        rgbc.gridy = 7;        editPanel.add(colorButton, rgbc);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -