📄 optiondialog.java
字号:
p.add(label, null);
cbbloglevel.setBounds(basex + 100, basey + 2 * height, 100, height);
String[] levels = resource.getStringArray("loglevels");
for (int i = 0; i < levels.length; i++) {
cbbloglevel.addItem(levels[i]);
}
p.add(cbbloglevel, null);
onCancel_Miscellaneous();
return p;
}
/**
/**
* 设置选项设置
*/
private void onOK() {
viewpanel.confirmChange();
toolbarpanel.confirmChange();
onOK_Folders();
onOK_Programlocations();
onOK_Miscellaneous();
//通知主窗口,设置已经改变
OptionDialog.this.firePropertyChange(PP_NAME, true, false);
}
private void onCancel() {
//viewpanel.resetChange();
//toolbarpanel.resetChange();
onCancel_Folders();
onCancel_Programlocations();
onCancel_Miscellaneous();
}
private void onCancel_Folders() {
rbdefault.setSelected(preference.getBoolean("o_default_s", true));
rblast_s.setSelected(preference.getBoolean("o_last_s", false));
rbfolder_s.setSelected(preference.getBoolean("o_folder_s", false));
tfstartup.setText(preference.get("o_startupfolder", ""));
//
rbopen_e.setSelected(preference.getBoolean("o_open_e", true));
rblast_e.setSelected(preference.getBoolean("o_last_e", false));
rbfolder_e.setSelected(preference.getBoolean("o_folder_e", false));
tfextract.setText(preference.get("o_extractfolder", ""));
//
rbopen_a.setSelected(preference.getBoolean("o_open_a", true));
rblast_a.setSelected(preference.getBoolean("o_last_a", false));
rbfolder_a.setSelected(preference.getBoolean("o_folder_a", false));
tfadd.setText(preference.get("o_addfolder", ""));
//
tfwork.setText(preference.get("o_workingfolder", ""));
}
private void onCancel_Programlocations() {
tfviewer.setText(preference.get("o_viewer", ""));
tfscanner.setText(preference.get("o_scanner", ""));
}
private void onCancel_Miscellaneous() {
cbautoopen.setSelected(preference.getBoolean("o_autoopen", true));
int nfiles = preference.getInt("o_recentfiles", 4);
sprecentfiles.setValue(new Integer(nfiles));
String log = preference.get("o_loglevel", "DEBUG");
for (int i = 0; i < loglevels.length; i++) {
if (log.equals(loglevels[i])) {
cbbloglevel.setSelectedIndex(i);
break;
}
}
}
private void onOK_Folders() {
preference.putBoolean("o_default_s", rbdefault.isSelected());
preference.putBoolean("o_last_s", rblast_s.isSelected());
preference.putBoolean("o_folder_s", rbfolder_s.isSelected());
preference.put("o_startupfolder", tfstartup.getText());
//
preference.putBoolean("o_open_e", rbopen_e.isSelected());
preference.putBoolean("o_last_e", rblast_e.isSelected());
preference.putBoolean("o_folder_e", rbfolder_e.isSelected());
preference.put("o_extractfolder", tfextract.getText());
//
preference.getBoolean("o_open_a", rbopen_a.isSelected());
preference.getBoolean("o_last_a", rblast_a.isSelected());
preference.getBoolean("o_folder_a", rbfolder_a.isSelected());
preference.get("o_addfolder", tfadd.getText());
//
preference.get("o_workingfolder", tfwork.getText());
}
private void onOK_Programlocations() {
preference.put("o_viewer", tfviewer.getText());
preference.put("o_scanner", tfscanner.getText());
}
private void onOK_Miscellaneous() {
preference.getBoolean("o_autoopen", cbautoopen.isSelected());
int nfiles = ( (Integer) sprecentfiles.getValue()).intValue();
preference.putInt("o_recentfiles", nfiles);
int nIndex = cbbloglevel.getSelectedIndex();
if (nIndex >= loglevels.length) {
nIndex = loglevels.length;
}
String log = loglevels[nIndex];
preference.put("o_loglevel", log);
}
/** @todo 选择按钮 */
class SelectButtonsAction
implements ActionListener {
public void actionPerformed(ActionEvent e) {
}
}
/** @todo 选择目录的action */
class BrowseAction
implements ActionListener {
JTextComponent cp;
JRadioButton radio = null;
BrowseAction(JTextComponent cp) {
this.cp = cp;
}
public void actionPerformed(ActionEvent e) {
String sfile;
JFileChooser fc = new JFileChooser();
int result = fc.showOpenDialog(OptionDialog.this);
if (result == JFileChooser.APPROVE_OPTION) {
File file = fc.getSelectedFile();
cp.setText(file.getAbsolutePath());
if (radio != null) {
radio.setSelected(true);
}
}
}
public void setBuddy(JRadioButton radio) {
this.radio = radio;
}
}
class SelectPathAction
implements ActionListener {
JTextComponent cp = null;
JRadioButton radio = null;
SelectPathAction(JTextComponent cp, JRadioButton radio) {
this.cp = cp;
this.radio = radio;
}
public void actionPerformed(ActionEvent e) {
String sfile;
JFileChooser fc = new JFileChooser();
fc.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
int result = fc.showOpenDialog(OptionDialog.this);
if (result == JFileChooser.APPROVE_OPTION) {
File file = fc.getSelectedFile();
cp.setText(file.getAbsolutePath());
if (radio != null) {
radio.setSelected(true);
}
}
}
public void setBuddy(JRadioButton radio) {
this.radio = radio;
}
}
/**
* 确定动作
*/
class OKAction
implements ActionListener {
public void actionPerformed(ActionEvent e) {
OptionDialog.this.onOK();
OptionDialog.this.setVisible(false);
}
}
/**
* 视图选项面板。
*/
class ViewPanel
extends JPanel {
String[] columnHeaders = resource.getStringArray("t_columnnames");
JCheckBox[] tableColumnBoxes = new JCheckBox[columnHeaders.length];
boolean[] status = BooleanUtil.convertToArray(preference.getLong(
"table_status", 127));
JCheckBox fulllineSelected = new JCheckBox();
//JCheckBox upperFilename=new JCheckBox();
JCheckBox showGridline = new JCheckBox();
JRadioButton doubleOpen = new JRadioButton();
JRadioButton singleOpen = new JRadioButton();
public ViewPanel() {
setLayout(new GridLayout(1, 2));
OptionPanel columnStatusPanel = new OptionPanel(resource.getString(
"o_table_title"), columnHeaders.length + 2, 1);
add(columnStatusPanel);
for (int i = 0; i < columnHeaders.length; i++) {
tableColumnBoxes[i] = new JCheckBox(columnHeaders[i], status[i]);
columnStatusPanel.add(tableColumnBoxes[i]);
}
tableColumnBoxes[0].setEnabled(false);
JPanel rightPanel = new JPanel();
rightPanel.setLayout(new GridLayout(2, 1));
OptionPanel generalPanel = new OptionPanel(resource.getString(
"o_general_title"), 5, 1);
OptionPanel mousePanel = new OptionPanel(resource.getString("o_ms_title"),
5, 1);
rightPanel.add(generalPanel);
rightPanel.add(mousePanel);
add(rightPanel);
fulllineSelected.setText(resource.getString("o_vg_fullsel"));
generalPanel.add(fulllineSelected);
fulllineSelected.setSelected(preference.getBoolean("fulllineselect", true));
//upperFilename.setText(resource.getString("o_vg_filename"));
//generalPanel.add(upperFilename);
//upperFilename.setSelected(preference.getBoolean("upperfilename", true));
showGridline.setText(resource.getString("o_vg_grid"));
generalPanel.add(showGridline);
showGridline.setSelected(preference.getBoolean("showgridline", true));
doubleOpen.setText(resource.getString("o_vm_doubleopen"));
mousePanel.add(doubleOpen);
doubleOpen.setSelected(preference.getBoolean("mouseopenmode", true));
singleOpen.setText(resource.getString("o_vm_singleopen"));
mousePanel.add(singleOpen);
singleOpen.setSelected(preference.getBoolean("mouseopenmode", false));
ButtonGroup mouseGroup = new ButtonGroup();
mouseGroup.add(doubleOpen);
mouseGroup.add(singleOpen);
}
/**
* 确认所做的修改。
* 提取设置的值并存储到注册表中。
*/
public void confirmChange() {
for (int i = 0; i < columnHeaders.length; i++) {
status[i] = tableColumnBoxes[i].isSelected();
}
long finalStatus = BooleanUtil.convertToLong(status);
preference.putLong("table_status", finalStatus);
preference.putBoolean("fulllineselect", fulllineSelected.isSelected());
//preference.putBoolean("upperfilename", upperFilename.isSelected());
preference.putBoolean("showgridline", showGridline.isSelected());
preference.putBoolean("mouseopenmode", doubleOpen.isSelected());
}
/**
* 恢复用户的修改。
*/
public void resetChange() {
for (int i = 0; i < columnHeaders.length; i++) {
tableColumnBoxes[i].setSelected(status[i]);
}
fulllineSelected.setSelected(preference.getBoolean("fulllineselect", true));
//upperFilename.setSelected(preference.getBoolean("upperfilename", true));
showGridline.setSelected(preference.getBoolean("showgridline", true));
doubleOpen.setSelected(preference.getBoolean("mouseopenmode", true));
singleOpen.setSelected(preference.getBoolean("mouseopenmode", false));
}
}
/**
* 工具条选项面板。
*/
class ToolbarPanel
extends JPanel {
JCheckBox showText = new JCheckBox();
JCheckBox showTooltipText = new JCheckBox();
JButton customizeToolbar;
public ToolbarPanel() {
setLayout(new BorderLayout());
OptionPanel toolbarPanel = new OptionPanel(resource.getString("o_t_title"),
8, 1);
add(toolbarPanel, "Center");
showText.setText(resource.getString("o_t_showtext"));
toolbarPanel.add(showText);
showText.setSelected(preference.getBoolean("o_showtext", true));
showTooltipText.setText(resource.getString("o_t_showtip"));
toolbarPanel.add(showTooltipText);
showTooltipText.setSelected(preference.getBoolean("o_showtip", true));
customizeToolbar = SwingUtil.createDynamicButton( (ButtonProperty)
resource.getObject("o_b_selectbtn"));
customizeToolbar.setEnabled(false);
add(customizeToolbar, "South");
}
/**
* 确认所做的修改。
* 提取设置的值并存储到注册表中。
*/
public void confirmChange() {
preference.putBoolean("o_showtext", showText.isSelected());
preference.putBoolean("o_showtip", showTooltipText.isSelected());
}
/**
* 恢复用户的修改。
*/
public void resetChange() {
showText.setSelected(preference.getBoolean("o_showtext", true));
showTooltipText.setSelected(preference.getBoolean("o_showtip", false));
}
}
/**
* 工具条选项面板。
*/
class FolderPanel
extends JPanel {
JCheckBox showText = new JCheckBox();
JCheckBox showTooltipText = new JCheckBox();
public FolderPanel() {
setLayout(new GridLayout(2, 2));
OptionPanel toolbarPanel = new OptionPanel(resource.getString("o_t_title"),
5, 1);
add(toolbarPanel);
showText.setText(resource.getString("o_t_showtext"));
toolbarPanel.add(showText);
showText.setSelected(preference.getBoolean("o_showtext", true));
showTooltipText.setText(resource.getString("o_t_showtip"));
toolbarPanel.add(showTooltipText);
showTooltipText.setSelected(preference.getBoolean("o_showtip", true));
}
/**
* 确认所做的修改。
* 提取设置的值并存储到注册表中。
*/
public void confirmChange() {
preference.putBoolean("o_showtext", showText.isSelected());
preference.putBoolean("o_showtip", showTooltipText.isSelected());
}
/**
* 恢复用户的修改。
*/
public void resetChange() {
showText.setSelected(preference.getBoolean("o_showtext", true));
showTooltipText.setSelected(preference.getBoolean("o_showtip", false));
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -