?? optionseditor.java
字號(hào):
/** * Copyright 2004 Carlos Silva A. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * */package jgantt.view.dialogs;import java.awt.Font;import java.awt.GridBagConstraints;import java.awt.GridBagLayout;import java.awt.Window;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.util.Calendar;import java.util.Vector;import javax.swing.JComboBox;import javax.swing.JComponent;import javax.swing.JLabel;import javax.swing.JPanel;import javax.swing.JTextField;import javax.swing.border.TitledBorder;import jgantt.Messages;import jgantt.model.Task;import jgantt.model.ViewOptions;import jgantt.view.adapters.ProjectViewModel;import jgantt.view.adapters.ProjectViewModelChange;import jgantt.view.adapters.ProjectViewModelListener;public class OptionsEditor extends JPanel implements ActionListener, ProjectViewModelListener { private static final long serialVersionUID = 3257569490396000312L; TitledBorder border; JComboBox majorUnit; JComboBox minorUnit; JTextField majorMult; JTextField minorMult; JComboBox majorFormat; JComboBox minorFormat; JComboBox gridWidth; JComboBox gridHeight; JTextField dateFormat; JTextField barTextFormat; JTextField assignTextFormat; ProjectViewModel pvModel; ViewOptions viewOptions = null; OptionsEditor optionsEditor = this; protected void addComp( JComponent cmp, GridBagLayout gridbag, GridBagConstraints c) { gridbag.setConstraints(cmp, c); add(cmp); } /** * Constructor for TaskEditor */ public OptionsEditor(Window parent, ProjectViewModel projectViewModel) { super(); assignViewModel(projectViewModel); pvModel.addListener(this); if (parent != null) new RemoveObservers(parent, pvModel, this, null); Vector majUnits = new Vector(); majUnits.addElement(Messages.getString("options.unit.day")); //$NON-NLS-1$ majUnits.addElement(Messages.getString("options.unit.week")); //$NON-NLS-1$ majUnits.addElement(Messages.getString("options.unit.month")); //$NON-NLS-1$ majUnits.addElement(Messages.getString("options.unit.year")); //$NON-NLS-1$ Vector minUnits = new Vector(); minUnits.addElement(Messages.getString("options.unit.day")); //$NON-NLS-1$ minUnits.addElement(Messages.getString("options.unit.week")); //$NON-NLS-1$ minUnits.addElement(Messages.getString("options.unit.month")); //$NON-NLS-1$ Vector majFormats = new Vector(); majFormats.addElement(Messages.getString("options.major.format.1")); //$NON-NLS-1$ majFormats.addElement(Messages.getString("options.major.format.2")); //$NON-NLS-1$ majFormats.addElement(Messages.getString("options.major.format.3")); //$NON-NLS-1$ Vector minFormats = new Vector(); minFormats.addElement(Messages.getString("options.minor.format.dayNumber")); //$NON-NLS-1$ minFormats.addElement(Messages.getString("options.minor.format.dayname")); //$NON-NLS-1$ Vector gridWidths = new Vector(); gridWidths.add("8"); gridWidths.add("9"); gridWidths.add("10"); gridWidths.add("11"); gridWidths.add("12"); gridWidths.add("13"); gridWidths.add("14"); gridWidths.add("15"); gridWidths.add("16"); gridWidths.add("17"); gridWidths.add("18"); Vector taskHeight= new Vector(); taskHeight.add("16"); taskHeight.add("17"); taskHeight.add("18"); taskHeight.add("19"); taskHeight.add("20"); taskHeight.add("21"); taskHeight.add("22"); taskHeight.add("23"); taskHeight.add("24"); //border = BorderFactory.createTitledBorder(getClass().getName()); //setBorder(border); majorUnit = new JComboBox(majUnits); minorUnit = new JComboBox(minUnits); majorMult = new JTextField("" + viewOptions.majDivMult, 3); minorMult = new JTextField("" + viewOptions.minDivMult, 3); majorFormat = new JComboBox(majFormats); minorFormat = new JComboBox(minFormats); gridWidth = new JComboBox(gridWidths); gridHeight = new JComboBox(taskHeight); GridBagLayout gridbag = new GridBagLayout(); GridBagConstraints c = new GridBagConstraints(); setLayout(gridbag); c.fill = GridBagConstraints.BOTH; c.weightx = 1.0; addComp(new JLabel(Messages.getString("options.major.divs.label"), JLabel.LEFT), gridbag, c); //$NON-NLS-1$ addComp(majorUnit, gridbag, c); addComp(majorMult, gridbag, c); c.gridwidth = GridBagConstraints.REMAINDER; //end row addComp(majorFormat, gridbag, c); c.weightx = 0.0; c.gridwidth = 1; addComp(new JLabel(Messages.getString("options.minor.divs.label"), JLabel.LEFT), gridbag, c); //$NON-NLS-1$ addComp(minorUnit, gridbag, c); addComp(minorMult, gridbag, c); c.gridwidth = GridBagConstraints.REMAINDER; //end row addComp(minorFormat, gridbag, c); c.weightx = 0.0; c.gridwidth = 1; addComp(new JLabel(Messages.getString("options.grid.width.label"), JLabel.LEFT), gridbag, c); //$NON-NLS-1$ addComp(gridWidth, gridbag, c); addComp(new JLabel(Messages.getString("options.grid.width.unit.label"), JLabel.LEFT), gridbag, c); //$NON-NLS-1$ c.gridwidth = GridBagConstraints.REMAINDER; //end row addComp(new JLabel("", JLabel.LEFT), gridbag, c); c.weightx = 0.0; c.gridwidth = 1; addComp(new JLabel(Messages.getString("options.grid.height.label"), JLabel.LEFT), gridbag, c); //$NON-NLS-1$ addComp(gridHeight, gridbag, c); addComp(new JLabel(Messages.getString("options.grid.width.unit.label"), JLabel.LEFT), gridbag, c); //$NON-NLS-1$ c.gridwidth = GridBagConstraints.REMAINDER; //end row addComp(new JLabel("", JLabel.LEFT), gridbag, c); dateFormat = new JTextField(viewOptions.dateFormat); c.weightx = 0.0; c.gridwidth = 2; addComp(new JLabel("Date Format", JLabel.LEFT), gridbag, c); addComp(dateFormat, gridbag, c); c.gridwidth = GridBagConstraints.REMAINDER; //end row addComp(new JLabel("", JLabel.LEFT), gridbag, c); //$NON-NLS-1$ //addComp(new JLabel("", JLabel.LEFT), gridbag,c); //assignTextFormat= new JTextField(viewOptions.assignTextFormat, 9); barTextFormat = new JTextField(viewOptions.barTextFormat, 9); c.weightx = 0.0; c.gridwidth = 2; addComp(new JLabel("Bar text format", JLabel.LEFT), gridbag, c); c.gridwidth = GridBagConstraints.REMAINDER; //end row addComp(barTextFormat, gridbag, c); assignTextFormat = new JTextField(viewOptions.assignTextFormat, 9); c.weightx = 0.0; c.gridwidth = 2; addComp(new JLabel("Resources format (%R)", JLabel.LEFT), gridbag, c); c.gridwidth = GridBagConstraints.REMAINDER; //end row addComp(assignTextFormat, gridbag, c); c.weightx = 0.0; c.gridwidth = GridBagConstraints.REMAINDER; JLabel hint = new JLabel("More about formats in 'General Help'", JLabel.LEFT); hint.setFont(Font.getFont("宋體")); addComp( hint, gridbag, c); for(int i=0; i<gridHeight.getItemCount();i++){ String item = (String) gridHeight.getItemAt(i); if (pvModel.getViewOptions().taskHeight== Integer.parseInt(item)){ gridHeight.setSelectedIndex(i); break; } } switch (viewOptions.majDivUnit) { case Calendar.DAY_OF_MONTH : majorUnit.setSelectedIndex(0); break; case Calendar.WEEK_OF_YEAR : majorUnit.setSelectedIndex(1); break; case Calendar.MONTH : majorUnit.setSelectedIndex(2); break; default : majorUnit.setSelectedIndex(3); break; } switch (viewOptions.minDivUnit) { case Calendar.DAY_OF_MONTH : minorUnit.setSelectedIndex(0); break; case Calendar.WEEK_OF_YEAR : minorUnit.setSelectedIndex(1); break; case Calendar.MONTH : minorUnit.setSelectedIndex(2); break; default : minorUnit.setSelectedIndex(3); break; } gridWidth.setSelectedIndex(viewOptions.stdDivWidth - 9); if (viewOptions.minDivFormat == Calendar.DAY_OF_MONTH) minorFormat.setSelectedIndex(0); else minorFormat.setSelectedIndex(1); majorUnit.addActionListener(this); majorMult.addActionListener(this); minorUnit.addActionListener(this); minorMult.addActionListener(this); majorFormat.addActionListener(this); minorFormat.addActionListener(this); gridWidth.addActionListener(this); gridHeight.addActionListener(this); dateFormat.addActionListener(this); barTextFormat.addActionListener(this); assignTextFormat.addActionListener(this); assignViewModel(pvModel); } /** * cambios en los controles. */ public void actionPerformed(ActionEvent event) { //System.out.println("inputMethodTextChanged source="+event.getSource().getClass().getName()); Object src = event.getSource(); Task task = pvModel.getCurrentTask(); if (src == majorUnit) { switch (majorUnit.getSelectedIndex()) { case 0 : viewOptions.majDivUnit = Calendar.DAY_OF_MONTH; break; case 1 : viewOptions.majDivUnit = Calendar.WEEK_OF_YEAR; break; case 2 : viewOptions.majDivUnit = Calendar.MONTH; break; case 3 : viewOptions.majDivUnit = Calendar.YEAR; break; } } else if (src == majorFormat) { try { viewOptions.majDivFormat = (String) majorFormat.getSelectedItem(); } catch (Exception e) { } } else if (src == majorMult) { try { viewOptions.majDivMult = Byte.parseByte(majorMult.getText()); } catch (Exception e) { } } else if (src == minorMult) { try { viewOptions.minDivMult = Byte.parseByte(minorMult.getText()); } catch (Exception e) { } } else if (src == minorUnit) { switch (minorUnit.getSelectedIndex()) { case 0 : viewOptions.minDivUnit = Calendar.DAY_OF_MONTH; break; case 1 : viewOptions.minDivUnit = Calendar.WEEK_OF_YEAR; break; case 2 : viewOptions.minDivUnit = Calendar.MONTH; break; case 3 : viewOptions.minDivUnit = Calendar.YEAR; break; } } else if (src == minorFormat) { switch (minorFormat.getSelectedIndex()) { case 0 : viewOptions.minDivFormat = Calendar.DAY_OF_MONTH; break; case 1 : viewOptions.minDivFormat = Calendar.DAY_OF_WEEK; break; } } else if (src == gridWidth) { int w = Integer.parseInt(gridWidth.getSelectedItem().toString()); viewOptions.stdDivWidth = w; viewOptions.recalc(); } else if (src == gridHeight) { int h = Integer.parseInt(gridHeight.getSelectedItem().toString()); viewOptions.taskHeight= h; viewOptions.taskBarHeight= h-8; viewOptions.recalc(); } else if (src == dateFormat) { viewOptions.dateFormat = dateFormat.getText(); } else if (src == barTextFormat) { viewOptions.barTextFormat= barTextFormat.getText(); } else if (src == assignTextFormat) { viewOptions.assignTextFormat = assignTextFormat.getText(); } viewOptions.notifyObservers(); } /** * Eventos del modelo * Reasigna los ViewOptions * @see jgantt.view.adapters.ProjectViewModelListener#projectChanged(jgantt.view.adapters.ProjectViewModelChange) */ public void viewModelChanged(ProjectViewModelChange c) { if (c.getId()==ProjectViewModelChange.NEW_PROJECT_LOADED){ assignViewModel(c.getProjectViewModel()); } } public void assignViewModel(ProjectViewModel pvm){ pvModel = pvm; viewOptions = pvModel.getViewOptions(); }}
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -