📄 boardselectiondialog.java
字号:
/* * MegaMek - Copyright (C) 2002-2003 Ben Mazur (bmazur@sev.org) * * 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. *//* * BoardSelectionDialog.java * * Created on March 25, 2002, 6:28 PM */package megamek.client.ui.AWT;import java.awt.*;import java.awt.event.*;import java.io.IOException;import java.util.*;import megamek.common.*;import megamek.common.util.BoardUtilities;/** * * @author Ben * @version */public class BoardSelectionDialog extends Dialog implements ActionListener, ItemListener, KeyListener, IMapSettingsObserver{ private ClientGUI client; private MapSettings mapSettings; private RandomMapDialog randomMapDialog; private Panel panMapSize = new Panel(); private Label labBoardSize = new Label(Messages.getString("BoardSelectionDialog.BoardSize"), Label.RIGHT); //$NON-NLS-1$ private Label labBoardDivider = new Label("x", Label.CENTER); //$NON-NLS-1$ private TextField texBoardWidth = new TextField(2); private TextField texBoardHeight = new TextField(2); private Label labMapSize = new Label(Messages.getString("BoardSelectionDialog.MapSize"), Label.RIGHT); //$NON-NLS-1$ private Label labMapDivider = new Label("x", Label.CENTER); //$NON-NLS-1$ private TextField texMapWidth = new TextField(2); private TextField texMapHeight = new TextField(2); private ScrollPane scrMapButtons = new ScrollPane(ScrollPane.SCROLLBARS_AS_NEEDED); private Panel panMapButtons = new Panel(); private Panel panBoardsSelected = new Panel(); private Label labBoardsSelected = new Label(Messages.getString("BoardSelectionDialog.MapsSelected"), Label.CENTER); //$NON-NLS-1$ private java.awt.List lisBoardsSelected = new java.awt.List(10); private Checkbox chkSelectAll = new Checkbox(Messages.getString("BoardSelectionDialog.SelectAll")); //$NON-NLS-1$ private Button butChange = new Button("<<"); //$NON-NLS-1$ private Panel panBoardsAvailable = new Panel(); private Label labBoardsAvailable = new Label(Messages.getString("BoardSelectionDialog.mapsAvailable"), Label.CENTER); //$NON-NLS-1$ private java.awt.List lisBoardsAvailable = new java.awt.List(10); private Checkbox chkRotateBoard = new Checkbox(Messages.getString("BoardSelectionDialog.RotateBoard")); //$NON-NLS-1$ private Panel panButtons = new Panel(); private Button butUpdate = new Button(Messages.getString("BoardSelectionDialog.UpdateSize")); //$NON-NLS-1$ private Button butRandomMap = new Button(Messages.getString("BoardSelectionDialog.GeneratedMapSettings")); //$NON-NLS-1$ private Label labButtonSpace = new Label("", Label.CENTER); //$NON-NLS-1$ private Button butOkay = new Button(Messages.getString("Okay")); //$NON-NLS-1$ private Button butCancel = new Button(Messages.getString("Cancel")); //$NON-NLS-1$ private Button butPreview = new Button(Messages.getString("BoardSelectionDialog.Preview")); //$NON-NLS-1$ private Dialog mapPreviewW; private boolean bDelayedSingleSelect = false; /** Creates new BoardSelectionDialog */ public BoardSelectionDialog(ClientGUI client) { super(client.frame, Messages.getString("BoardSelectionDialog.EditBoardLaout"), true); //$NON-NLS-1$ this.client = client; this.mapSettings = (MapSettings)client.getClient().getMapSettings().clone(); setResizable(true); randomMapDialog = new RandomMapDialog(client.frame, this, mapSettings); setupMapSize(); setupSelected(); setupAvailable(); setupButtons(); butChange.addActionListener(this); // layout GridBagLayout gridbag = new GridBagLayout(); GridBagConstraints c = new GridBagConstraints(); this.setLayout(gridbag); c.fill = GridBagConstraints.BOTH; c.insets = new Insets(4, 4, 4, 4); c.weightx = 1.0; c.weighty = 1.0; c.gridwidth = 1; gridbag.setConstraints(panMapSize, c); this.add(panMapSize); gridbag.setConstraints(panBoardsSelected, c); this.add(panBoardsSelected); c.fill = GridBagConstraints.HORIZONTAL; gridbag.setConstraints(butChange, c); this.add(butChange); c.fill = GridBagConstraints.BOTH; c.gridwidth = GridBagConstraints.REMAINDER; gridbag.setConstraints(panBoardsAvailable, c); this.add(panBoardsAvailable); gridbag.setConstraints(panButtons, c); this.add(panButtons); mapPreviewW = new Dialog(this.client.frame, Messages.getString("BoardSelectionDialog.MapPreview"), false); //$NON-NLS-1$ mapPreviewW.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { setVisible(false); } }); addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { setVisible(false); mapPreviewW.setVisible(false); } }); pack(); setResizable(false); setLocation(client.frame.getLocation().x + client.frame.getSize().width/2 - getSize().width/2, client.frame.getLocation().y + client.frame.getSize().height/2 - getSize().height/2); } /** * Set up the map size panel */ private void setupMapSize() { refreshMapSize(); refreshMapButtons(); scrMapButtons.add(panMapButtons); // layout GridBagLayout gridbag = new GridBagLayout(); GridBagConstraints c = new GridBagConstraints(); panMapSize.setLayout(gridbag); c.insets = new Insets(1, 1, 1, 1); c.fill = GridBagConstraints.HORIZONTAL; c.weightx = 1.0; c.weighty = 0.0; c.gridwidth = 1; gridbag.setConstraints(labBoardSize, c); panMapSize.add(labBoardSize); gridbag.setConstraints(texBoardWidth, c); panMapSize.add(texBoardWidth); gridbag.setConstraints(labBoardDivider, c); panMapSize.add(labBoardDivider); c.gridwidth = GridBagConstraints.REMAINDER; gridbag.setConstraints(texBoardHeight, c); panMapSize.add(texBoardHeight); c.gridwidth = 1; gridbag.setConstraints(labMapSize, c); panMapSize.add(labMapSize); gridbag.setConstraints(texMapWidth, c); panMapSize.add(texMapWidth); gridbag.setConstraints(labMapDivider, c); panMapSize.add(labMapDivider); c.gridwidth = GridBagConstraints.REMAINDER; gridbag.setConstraints(texMapHeight, c); panMapSize.add(texMapHeight); c.fill = GridBagConstraints.BOTH; c.weightx = 1.0; c.weighty = 1.0; gridbag.setConstraints(scrMapButtons, c); panMapSize.add(scrMapButtons); } private void setupSelected() { refreshBoardsSelected(); lisBoardsSelected.addItemListener(this); lisBoardsSelected.addKeyListener(this); chkSelectAll.addItemListener(this); panBoardsSelected.setLayout(new BorderLayout()); panBoardsSelected.add(labBoardsSelected, BorderLayout.NORTH); panBoardsSelected.add(lisBoardsSelected, BorderLayout.CENTER); panBoardsSelected.add(chkSelectAll, BorderLayout.SOUTH); } private void setupAvailable() { refreshBoardsAvailable(); lisBoardsAvailable.addActionListener(this); panBoardsAvailable.setLayout(new BorderLayout()); panBoardsAvailable.add(labBoardsAvailable, BorderLayout.NORTH); panBoardsAvailable.add(lisBoardsAvailable, BorderLayout.CENTER); panBoardsAvailable.add(chkRotateBoard, BorderLayout.SOUTH); } private void setupButtons() { butUpdate.addActionListener(this); butOkay.addActionListener(this); butCancel.addActionListener(this); butRandomMap.addActionListener(this); butPreview.addActionListener(this); // layout GridBagLayout gridbag = new GridBagLayout(); GridBagConstraints c = new GridBagConstraints(); panButtons.setLayout(gridbag); c.insets = new Insets(5, 5, 0, 0); c.weightx = 0.0; c.weighty = 1.0; c.fill = GridBagConstraints.VERTICAL; c.ipadx = 20; c.ipady = 5; c.gridwidth = 1; gridbag.setConstraints(butUpdate, c); panButtons.add(butUpdate); gridbag.setConstraints(butRandomMap, c); panButtons.add(butRandomMap); gridbag.setConstraints(butPreview, c); panButtons.add(butPreview); c.weightx = 1.0; c.weighty = 1.0; gridbag.setConstraints(labButtonSpace, c); panButtons.add(labButtonSpace); c.weightx = 0.0; c.weighty = 1.0; gridbag.setConstraints(butOkay, c); panButtons.add(butOkay); c.gridwidth = GridBagConstraints.REMAINDER; gridbag.setConstraints(butCancel, c); panButtons.add(butCancel); } private void refreshMapSize() { texBoardWidth.setText(new Integer(mapSettings.getBoardWidth()).toString()); texBoardHeight.setText(new Integer(mapSettings.getBoardHeight()).toString());
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -