📄 taskeditor.java
字号:
/** * 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.BorderLayout;import java.awt.Window;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.FocusEvent;import java.awt.event.FocusListener;import java.util.Date;import javax.swing.JLabel;import javax.swing.JPanel;import javax.swing.JScrollPane;import javax.swing.JTabbedPane;import javax.swing.JTextArea;import javax.swing.JTextField;import javax.swing.border.TitledBorder;import jgantt.Messages;import jgantt.model.Project;import jgantt.model.Task;import jgantt.view.LabeledPairLayout;import jgantt.view.adapters.ProjectViewModel;import jgantt.view.adapters.ProjectViewModelChange;import jgantt.view.adapters.ProjectViewModelListener;import com.csa.lib.swing.DateField;/** * TaskEditor edita una tarea Task. * * @version $Header: /cvs/java/App_JGantt/source/jgantt/view/dialogs/TaskEditor.java,v 1.25 2005/07/05 04:33:53 csilva Exp $ * @author Carlos Silva */public class TaskEditor extends JTabbedPane implements ActionListener, ProjectViewModelListener { private static final long serialVersionUID = 3257845493651814197L; TitledBorder border; JTextField taskName; JTextField taskLength; DateField taskNotBefore; JTextField taskComments; JTextField taskCompleted; JTextArea taskNotes; Project project = null; ProjectViewModel pvModel; /** * Constructor for TaskEditor */ public TaskEditor(Window parent, ProjectViewModel model) { super(); assignViewModel(model); pvModel.addListener (this); addTab(Messages.getString("TaskEditor.tab.main.label"), null, makePrincipalPanel(), Messages.getString("TaskEditor.tab.main.hint")); //$NON-NLS-1$ //$NON-NLS-2$ addTab(Messages.getString("TaskEditor.tab.notes.label"), null, makeNotesPanel(), Messages.getString("TaskEditor.tab.notes.hint")); //$NON-NLS-1$ //$NON-NLS-2$ currentTaskChanged(pvModel.getCurrentTask(), null); if (parent != null) new RemoveObservers(parent, pvModel, this, null); } /** * Panel de notas * @return */ JPanel makeNotesPanel() { JPanel panel = new JPanel(); panel.setLayout(new BorderLayout()); taskNotes=new JTextArea(5,30); panel.add(new JScrollPane(taskNotes)); taskNotes.addFocusListener(new FocusListener(){ public void focusGained(FocusEvent arg0) { } public void focusLost(FocusEvent arg0) { Task task = pvModel.getCurrentTask(); task.setNotes(taskNotes.getText()); } }); return panel; } /** * Panel principal * @return */ JPanel makePrincipalPanel() { JPanel panel = new JPanel(); panel.setLayout(new LabeledPairLayout()); panel.add(new JLabel(Messages.getString("TaskEditor.taskName.label"), JLabel.RIGHT), LabeledPairLayout.LABEL); //$NON-NLS-1$ panel.add(new JLabel(Messages.getString("TaskEditor.length.label"), JLabel.RIGHT), LabeledPairLayout.LABEL); //$NON-NLS-1$ panel.add(new JLabel(Messages.getString("TaskEditor.dontStart.label"), JLabel.RIGHT), LabeledPairLayout.LABEL); //$NON-NLS-1$ panel.add(new JLabel(Messages.getString("TaskEditor.comments.label"), JLabel.RIGHT), LabeledPairLayout.LABEL); //$NON-NLS-1$ panel.add(new JLabel(Messages.getString("TaskEditor.completed.label"), JLabel.RIGHT), LabeledPairLayout.LABEL); //$NON-NLS-1$ taskName = new JTextField(15); taskLength = new JTextField(5); taskNotBefore = new DateField(project.getViewOptions().editDateFormat); taskComments = new JTextField(15); taskCompleted = new JTextField(5); panel.add(taskName, LabeledPairLayout.FIELD); panel.add(taskLength, LabeledPairLayout.FIELD); panel.add(taskNotBefore, LabeledPairLayout.FIELD); panel.add(taskComments, LabeledPairLayout.FIELD); panel.add(taskCompleted, LabeledPairLayout.FIELD); taskName.addActionListener(this); taskLength.addActionListener(this); taskComments.addActionListener(this); taskCompleted.addActionListener(this); taskNotBefore.addActionListener(this); return panel; } /** * 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(); //System.out.println("actionPerformed " + event.getSource()); if (src == taskName) { task.setName(taskName.getText()); } else if (src == taskLength) { try { task.setLength(Integer.parseInt(taskLength.getText())); } catch (Exception e) { } } else if (src == taskCompleted) { try { task.setCompleted(Integer.parseInt(taskCompleted.getText())); } catch (Exception e) { } } else if (src == taskNotBefore) { try{ task.setNotBeforeDate(taskNotBefore.getDate()); } catch (Exception e) { System.out.println("setfecha nop:" + e); } } if (src == taskComments) { task.setComments(taskComments.getText()); } } public void currentTaskChanged(Task currentTask, Task oldTask) { if (currentTask == null) return; //System.out.println(getClass().getName()+"::currentTaskChanged"); taskName.setText(currentTask.getName()); taskLength.setText("" + currentTask.getLength()); taskCompleted.setText("" + currentTask.getCompleted()); taskComments.setText("" + currentTask.getComments()); taskNotes.setText(currentTask.getNotes()); taskLength.setEnabled(!currentTask.isResume()); taskNotBefore.setEnabled(!currentTask.isResume()); Date d = currentTask.getNotBeforeDate(); if (d != null) { taskNotBefore.setDate(d); } else taskNotBefore.setDate(null); } /** * Atiende nuevos proyectos cargados */ public void assignViewModel(ProjectViewModel pvm) { pvModel = pvm; project = pvm.getProject(); } /** * Eventos del modelo * @see jgantt.view.adapters.ProjectViewModelListener#projectChanged(jgantt.view.adapters.ProjectViewModelChange) */ public void viewModelChanged(ProjectViewModelChange c) { switch(c.getId()){ case ProjectViewModelChange.NEW_PROJECT_LOADED: assignViewModel(c.getProjectViewModel()); // fall into current Task Changed case ProjectViewModelChange.CURRENT_TASK_CHANGED: currentTaskChanged(pvModel.getCurrentTask(), null); } }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -