⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 asignationeditor.java

📁 Owing to the applet Gantt chart source yard, already Chinese melt, Gantt chart can demonstrate a Chi
💻 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.util.Iterator;import java.util.Vector;import javax.swing.JButton;import javax.swing.JPanel;import javax.swing.JScrollPane;import javax.swing.JTable;import javax.swing.event.TableModelEvent;import javax.swing.event.TableModelListener;import javax.swing.table.TableModel;import jgantt.Messages;import jgantt.model.Resource;import jgantt.model.Task;import jgantt.view.adapters.ProjectViewModel;import jgantt.view.adapters.ProjectViewModelChange;import jgantt.view.adapters.ProjectViewModelListener;/** * Resources *  * <p>$Date: 2004/04/24 06:44:25 $</p>  * @version $Revision: 1.10 $ * @author Carlos Silva */public class AsignationEditor extends JPanel implements ActionListener, ProjectViewModelListener {	/**	 * 	 */	private static final long serialVersionUID = 3257002172494263609L;	JTable jtable;	ResourceModel resModel;	String CMD_CLOSE = "Close";	String CMD_DELETE = "Delete resource";	String CMD_ADD = "Add resource";	Window mainWindow = null;	Task task;	ProjectViewModel pvModel;	AsignationEditor asignationEditor = this;	/**	 * Constructor for TaskEditor	 */	public AsignationEditor(Window parent, ProjectViewModel model, Task t) {		super();		mainWindow = parent;		pvModel = model;		this.task = t;		model.addListener(this);		Object o = this;		if (parent != null)			new RemoveObservers(parent, pvModel, this, null);		resModel = new ResourceModel(model, task);		jtable = new JTable(resModel);		JScrollPane js = new JScrollPane(jtable);		jtable.getColumnModel().getColumn(0).setMinWidth(20);		jtable.getColumnModel().getColumn(1).setMinWidth(50);		jtable.getColumnModel().getColumn(2).setMinWidth(70);		jtable.getColumnModel().getColumn(3).setMinWidth(50);		jtable.getColumnModel().getColumn(0).setMaxWidth(30);		jtable.getColumnModel().getColumn(1).setMaxWidth(70);		jtable.getColumnModel().getColumn(3).setMaxWidth(70);		JPanel buttons = new JPanel();		JButton jb = new JButton(CMD_ADD);		jb.addActionListener(this);		buttons.add(jb);		jb = new JButton(CMD_DELETE);		jb.addActionListener(this);		buttons.add(jb);		if (mainWindow != null) {			jb = new JButton(CMD_CLOSE);			jb.addActionListener(this);			buttons.add(jb);		}		setLayout(new BorderLayout());		add(js, BorderLayout.CENTER);		add(buttons, BorderLayout.NORTH);	}	/**	 * Eventos de botones	 */	public void actionPerformed(ActionEvent ev) {		String cmd = ev.getActionCommand();		if (cmd.equals(CMD_ADD)) {			new Resource(resModel.pvm.getProject());			resModel.fireTableChanged();		} else if (cmd.equals(CMD_DELETE)) {			int row = jtable.getSelectedRow();			Resource res = (Resource) resModel.pvm.getProject().getResources().get(row);			res.remove();			resModel.fireTableChanged();														} else if (cmd.equals(CMD_CLOSE)) {			pvModel.removeListener(this);			mainWindow.dispose();		}	}	static class ResourceModel implements TableModel {		String cn[] =			{				Messages.getString("ResourcesTable.col.id"),				Messages.getString("ResourcesTable.col.initials"),				Messages.getString("ResourcesTable.col.name"),				Messages.getString("ResourcesTable.col.units")};		ProjectViewModel pvm;		Task task;		public ResourceModel(ProjectViewModel model, Task t) {			pvm = model;			Vector v = model.getProject().getResources();			task = t;		}		Vector listeners = new Vector();		public void addTableModelListener(TableModelListener listener) {			listeners.add(listener);		}		public void fireTableChanged() {			for (Iterator i = listeners.iterator(); i.hasNext();) {				TableModelListener listener = (TableModelListener) i.next();				TableModelEvent ev = new TableModelEvent(this);				listener.tableChanged(ev);			}		}		public Class getColumnClass(int i) {			return String.class;		}		public int getColumnCount() {			return cn.length;		}		public String getColumnName(int c) {			return cn[c];		}		public int getRowCount() {			return pvm.getProject().getResources().size();		}		public Object getValueAt(int i, int j) {			Resource r = (Resource) pvm.getProject().getResources().get(i);			switch (j) {				case 0 :					return String.valueOf(r.getId());				case 1 :					return r.getInitials();				case 2 :					return r.getName();				case 3 :					return String.valueOf(task.getAsignationUnits(r));			}			return null;		}		public boolean isCellEditable(int i, int j) {			return j > 0;		}		public void removeTableModelListener(TableModelListener listener) {			listeners.remove(listener);		}		public void setValueAt(Object val, int i, int j) {			String value = (String) val;			Resource r = (Resource) pvm.getProject().getResources().get(i);			switch (j) {				case 1 :					r.setInitials(value);					break;				case 2 :					r.setName(value);					break;				case 3 :					task.addResource(r, Integer.parseInt(value));					break;			}		}		public void setTask(Task task) {			this.task = task;			fireTableChanged();		}	}	/** 	 * Eventos del modelo	 * @see jgantt.view.adapters.ProjectViewModelListener#projectChanged(jgantt.view.adapters.ProjectViewModelChange)	 */	public void viewModelChanged(ProjectViewModelChange c) {		resModel.setTask(c.getProjectViewModel().getCurrentTask());	}}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -