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

📄 tsconfigurationui.java

📁 编辑视频文件
💻 JAVA
字号:
/* * File:     TSConfigurationUI.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;import mpi.eudico.client.annotator.ElanLocale;import mpi.eudico.client.annotator.timeseries.config.TSSourceConfiguration;import mpi.eudico.client.annotator.timeseries.spi.TSConfigPanel;import mpi.eudico.client.annotator.timeseries.spi.TSServiceProvider;import mpi.eudico.client.annotator.timeseries.spi.TSServiceRegistry;import mpi.eudico.client.annotator.util.FileUtility;import java.awt.Component;import java.awt.Dialog;import java.awt.Frame;import java.awt.GridBagConstraints;import java.awt.GridBagLayout;import java.awt.GridLayout;import java.awt.Insets;import java.awt.Window;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.util.ArrayList;import javax.swing.JButton;import javax.swing.JComponent;import javax.swing.JDialog;import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing.SwingUtilities;/** * Configuration related ui handler. * * @author Han Sloetjes */public class TSConfigurationUI {    /**     * Creates a message dialog when there are no configurable time series     * sources linked to the document.     *     * @param parent the parent component or null     */    public void showNoConfigMessage(Component parent) {        showWarningMessage(parent,            ElanLocale.getString("TimeSeriesViewer.Config.NoConfigurableSource"));    }    /**     * Creates a warning message dialog with the specified message.     *     * @param parent the parent component     * @param message the message     */    private void showWarningMessage(Component parent, String message) {        JOptionPane.showMessageDialog(parent, message,            ElanLocale.getString("Message.Warning"), JOptionPane.WARNING_MESSAGE);    }    /**     * Creates an input dialog with a combobox containing all linked  time     * series sources. The user can select the one to configure.     *     * @param parent the parent component     * @param sources a list of time series sources     *     * @return the selected time series source     */    public TSSourceConfiguration selectConfigurableSource(Component parent,        ArrayList sources) {        if (sources == null) {            return null;        }        TSSourceConfiguration config = null;        String[] urls = new String[sources.size()];        for (int i = 0; i < sources.size(); i++) {            urls[i] = ((TSSourceConfiguration) sources.get(i)).getSource();        }        Object selection = JOptionPane.showInputDialog(parent,                ElanLocale.getString("TimeSeriesViewer.Config.SelectSource"),                ElanLocale.getString("Button.Select"),                JOptionPane.QUESTION_MESSAGE, null, urls, urls[0]);        if (selection != null) {            TSSourceConfiguration key;            for (int i = 0; i < sources.size(); i++) {                key = (TSSourceConfiguration) sources.get(i);                if (key.getSource() == selection) {                    config = key;                    break;                }            }        }        return config;    }    /**     * Creates a dialog with the configuration panel for the selected time     * series source (as returned by the Service Provider).     *     * @param parent the parent component     * @param cfg the configuration wrapper for the source     * @param li a listener to changes in the configuration     */    public void showConfigDialog(Component parent, TSSourceConfiguration cfg,        TimeSeriesChangeListener li) {        if ((cfg == null) || !FileUtility.fileExists(cfg.getSource())) {            showWarningMessage(parent,                ElanLocale.getString("TimeSeriesViewer.Config.Message.NoSource"));            return;        }        TSServiceRegistry registry = TSServiceRegistry.getInstance();        TSServiceProvider provider;        if (cfg.getProviderClassName() != null) {            provider = registry.getProviderByClassName(cfg.getProviderClassName());        } else {            provider = registry.getProviderForFile(cfg.getSource());        }        if (provider == null) {            showWarningMessage(parent,                ElanLocale.getString(                    "TimeSeriesViewer.Config.Message.NoProvider"));            return;        }        TSConfigPanel panel = provider.getConfigPanel(cfg);        if (panel == null) {            showWarningMessage(parent,                ElanLocale.getString(                    "TimeSeriesViewer.Config.Message.NoConfigPanel"));            return;        }        panel.addTimeSeriesChangeListener(li);        ConfigDialog dialog = null;        Window w = SwingUtilities.windowForComponent(parent);        if (w instanceof Dialog) {            dialog = new ConfigDialog((Dialog) w);        } else if (w instanceof Frame) {            dialog = new ConfigDialog((Frame) w);        } else {            dialog = new ConfigDialog();        }        dialog.setModal(true);        dialog.setTitle(ElanLocale.getString(                "TimeSeriesViewer.Config.Tracks.Title"));        dialog.addConfigPanel(panel);        dialog.pack();        dialog.setLocationRelativeTo(dialog.getOwner());        dialog.setVisible(true);    }    /**     * A custom dialog for a configuration panel.     *     * @author Han SLoetjes     * @version 1.0      */    public class ConfigDialog extends JDialog {        /**         * Creates a new ConfigDialog instance         */        public ConfigDialog() {            super();            initComponents();        }        /**         * Creates a new ConfigDialog instance         *         * @param parent the parent dialog         */        public ConfigDialog(Dialog parent) {            super(parent);            initComponents();        }        /**         * Creates a new ConfigDialog instance         *         * @param parent the parent frame         */        public ConfigDialog(Frame parent) {            super(parent);            initComponents();        }        private void initComponents() {            getContentPane().setLayout(new GridBagLayout());            JPanel buttonPanel = new JPanel(new GridLayout(1, 1, 2, 2));            JButton closeButton = new JButton(ElanLocale.getString(                        "Button.Close"));            closeButton.addActionListener(new ActionListener() {                    public void actionPerformed(ActionEvent ae) {                        ConfigDialog.this.dispose();                    }                });            buttonPanel.add(closeButton);            GridBagConstraints gbc = new GridBagConstraints();            gbc.anchor = GridBagConstraints.SOUTH;            gbc.gridy = 1;            gbc.insets = new Insets(4, 4, 4, 4);            getContentPane().add(buttonPanel, gbc);        }        /**         * Adds the configuration panel to the content pane of the dialog.         *         * @param panel the configuration panel         */        public void addConfigPanel(JComponent panel) {            if (panel != null) {                GridBagConstraints gbc = new GridBagConstraints();                gbc.anchor = GridBagConstraints.NORTH;                gbc.gridy = 0;                gbc.fill = GridBagConstraints.BOTH;                gbc.weightx = 1.0;                gbc.weighty = 1.0;                gbc.insets = new Insets(4, 4, 4, 4);                getContentPane().add(panel, gbc);            }        }    }}

⌨️ 快捷键说明

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