📄 pluginmanagerpanel.java
字号:
/* Copyright (C) 2003 Adam Olsen 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 1, 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., 675 Mass Ave, Cambridge, MA 02139, USA. */package com.valhalla.pluginmanager;import java.awt.Color;import java.awt.Dimension;import java.awt.event.MouseAdapter;import java.awt.event.MouseEvent;import java.util.ArrayList;import java.util.Locale;import java.util.ResourceBundle;import javax.swing.BorderFactory;import javax.swing.Box;import javax.swing.BoxLayout;import javax.swing.JButton;import javax.swing.JPanel;import javax.swing.JScrollPane;import javax.swing.JTable;import com.valhalla.gui.MJTextArea;/** * Plugin Panel for the PluginManager * * @author Adam Olsen * @version 1.0 */class PluginManagerPanel extends JPanel { private ResourceBundle resources = ResourceBundle.getBundle( "PluginManager", Locale.getDefault()); private PluginManager manager; private PluginTableModel model = null; private JTable table = null; private JPanel buttonPanel = new JPanel(); private JButton pluginButton = new JButton(resources .getString("installPlugins")); private MJTextArea descArea = new MJTextArea(); /** * Sets up the panel * * @param manager * the PluginManager enclosing this panel */ public PluginManagerPanel(PluginManager manager, boolean managePanel) { this.manager = manager; model = new PluginTableModel(this); if (managePanel) model.setManageModel(); table = new JTable(model); model.setTable(table); setLayout(new BoxLayout(this, BoxLayout.Y_AXIS)); setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5)); JScrollPane scrollPane = new JScrollPane(table); scrollPane.getViewport().setBackground(Color.WHITE); add(scrollPane); add(Box.createRigidArea(new Dimension(0, 5))); JScrollPane pane = new JScrollPane(descArea); add(pane); Dimension dim = descArea.getSize(); dim.setSize((int) dim.getWidth(), 130); descArea.setPreferredSize(dim); buttonPanel.setLayout(new BoxLayout(buttonPanel, BoxLayout.X_AXIS)); buttonPanel.add(Box.createHorizontalGlue()); buttonPanel.add(pluginButton); buttonPanel.setBorder(BorderFactory.createEmptyBorder(5, 0, 0, 0)); add(buttonPanel); table.addMouseListener(new MouseListener()); descArea.setEditable(false); descArea.setWrapStyleWord(true); descArea.setLineWrap(true); pluginButton.setEnabled(false); } public JTable getTable() { return table; } /** * Gets the button * * @return the panel's button */ public JButton getButton() { return pluginButton; } /** * Gets the button panel * * @return this panel's button panel */ public JPanel getButtonPanel() { return buttonPanel; } /** * Sets the plugin buttons text * * @param text * the plugin buttons text */ public void setButtonText(String text) { pluginButton.setText(text); } /** * Listens for mouse events * * @author Adam Olsen * @version 1.0 */ class MouseListener extends MouseAdapter { public void mouseClicked(MouseEvent e) { int row = table.getSelectedRow(); if (row < 0) return; String desc = model.getDescription(row); descArea.setText(desc); descArea.setCaretPosition(0); } } /** * Sets the list of plugins in the Table * * @param list * the list of plugins */ public void setPlugins(ArrayList list) { model.setPlugins(list); table.repaint(); table.validate(); descArea.setText(""); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -