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

📄 graphcolorseditor.java

📁 方便大家也方便自己啊。
💻 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.AWTEvent;import java.awt.Color;import java.awt.Dimension;import java.awt.Font;import java.awt.GridBagConstraints;import java.awt.GridBagLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.lang.reflect.Field;import javax.swing.BorderFactory;import javax.swing.JButton;import javax.swing.JCheckBox;import javax.swing.JColorChooser;import javax.swing.JComponent;import javax.swing.JLabel;import javax.swing.JPanel;import javax.swing.JTabbedPane;import javax.swing.JTextField;import jgantt.model.GraphColors;import jgantt.model.TaskColors;import jgantt.model.TaskTreeOptions;import jgantt.view.adapters.ProjectViewModel;import com.csa.lib.swing.FontField;/** * ProjectEditor, edita las caracteristicas de un proyecto: * <ul> * <li> fechad de inicio * </ul> * <p> * $Date: 2005/07/18 07:25:10 $ * </p> *  * @version $Revision: 1.6 $ * @author {user} */public class GraphColorsEditor extends JTabbedPane {	private static final long serialVersionUID = 3257846601719559735L;	ProjectViewModel pvModel;	static Color parseColor(String s) {		return new Color(Integer.parseInt(s, 16));	}	static String formatColor(Color c) {		return Integer.toHexString(c.getRGB() & 0x00ffffff);	}	class ColorTextField extends JTextField implements ActionListener {		private static final long serialVersionUID = 3258410629760104757L;		String fieldName;		Object object;		Field field = null;		ColorTextField(Object o, String n) {			object = o;			fieldName = n;			try {				field = object.getClass().getDeclaredField(fieldName);				Color color = (Color) field.get(object);				setText(formatColor(color));			} catch (Exception e) {				System.out.println("getcolor:" + e.getMessage());			}			addActionListener(this);		}		/**		 * cambios en los controles.		 */		public void actionPerformed(ActionEvent event) {			assign();		}		public void assign() {			try {				Color color = parseColor(getText());				field.set(object, color);				pvModel.getViewOptions().notifyObservers();			} catch (Exception e) {				System.out.println("setcolor:" + e.getMessage());			}		}	}	class ColorButton extends JButton implements ActionListener {		private static final long serialVersionUID = 3257566209124808759L;		ColorTextField textField;		ColorButton(ColorTextField tf) {			textField = tf;			setText("...");			enableEvents(AWTEvent.ACTION_EVENT_MASK);			addActionListener(this);		}		public void actionPerformed(ActionEvent event) {			Color c = JColorChooser.showDialog(this, textField.fieldName,					parseColor(textField.getText()));			if (c == null)				return;			textField.setText(formatColor(c));			textField.assign();		}	}	class BoolCheckBox extends JCheckBox implements ActionListener {		private static final long serialVersionUID = 3257564001411020341L;		String fieldName;		Object object;		Field field = null;		BoolCheckBox(Object o, String l) {			super(l);			fieldName = l;			object = o;			try {				field = GraphColors.class.getDeclaredField(fieldName);				boolean b = field.getBoolean(object);				setSelected(b);			} catch (Exception e) {				System.out.println("getboolean:" + e.getMessage());			}			addActionListener(this);		}		/**		 * cambios en los controles.		 */		public void actionPerformed(ActionEvent event) {			assign();		}		public void assign() {			try {				field.setBoolean(object, isSelected());				// refrescar...				pvModel.getViewOptions().notifyObservers();			} catch (Exception e) {				System.out.println("setboolean:" + e.getMessage());			}		}	}	class AutoFontField extends FontField implements ActionListener {		private static final long serialVersionUID = 3258410629760104757L;		String fieldName;		Object object;		Field field = null;		AutoFontField(Object o, String n) {			super(null);			object = o;			fieldName = n;			try {				field = object.getClass().getDeclaredField(fieldName);				Font font = (Font) field.get(object);				setFont(font);			} catch (Exception e) {				e.printStackTrace();							}			addActionListener(this);		}		/**		 * cambios en los controles.		 */		public void actionPerformed(ActionEvent event) {			assign();		}		public void assign() {			try {				field.set(object, getFont());				pvModel.getViewOptions().notifyObservers();			} catch (Exception e) {				System.out.println("setFont:" + e.getMessage());			}		}	}	protected void addColor(JPanel p, GridBagConstraints c, Object o, String l) {		addColor(p, c, o, l, l);	}	protected void addColor(JPanel p, GridBagConstraints c, Object o, String l,			String fieldLabel) {		JLabel label = new JLabel(fieldLabel, JLabel.LEFT);		c.weightx = 1.0;		c.gridwidth = 1;		GridBagLayout gridbag = (GridBagLayout) p.getLayout();		gridbag.setConstraints(label, c);		p.add(label);		ColorTextField field = new ColorTextField(o, l);		c.gridwidth = 1;		gridbag.setConstraints(field, c);		p.add(field);		ColorButton btn = new ColorButton(field);		c.weightx = 0.2;		c.gridwidth = GridBagConstraints.REMAINDER; // end row		gridbag.setConstraints(btn, c);		p.add(btn);	}	protected void addFont(JPanel p, GridBagConstraints c, Object obj,			String fieldName, String fieldLabel) {		JLabel label = new JLabel(fieldLabel, JLabel.LEFT);		c.weightx = 1.0;		c.gridwidth = 1;		GridBagLayout gridbag = (GridBagLayout) p.getLayout();		gridbag.setConstraints(label, c);		p.add(label);		JComponent field = new AutoFontField(obj, fieldName);		c.gridwidth = GridBagConstraints.REMAINDER; // end row		gridbag.setConstraints(field, c);		p.add(field);	}	protected void addCheck(JPanel p, GridBagConstraints c, Object o,			String fieldName) {		c.weightx = 1.0;		c.gridwidth = 1;		GridBagLayout gridbag = (GridBagLayout) p.getLayout();		BoolCheckBox field = new BoolCheckBox(o, fieldName);		c.gridwidth = GridBagConstraints.REMAINDER; // end row		gridbag.setConstraints(field, c);		p.add(field);	}	protected void addLabel(JPanel p, GridBagConstraints c, String l) {		c.weightx = 1.0;		c.gridwidth = 1;		GridBagLayout gridbag = (GridBagLayout) p.getLayout();		JLabel field = new JLabel(l);		field.setBorder(BorderFactory.createEtchedBorder(Color.lightGray,				Color.gray));		c.gridwidth = GridBagConstraints.REMAINDER; // end row		gridbag.setConstraints(field, c);		p.add(field);	}	/**	 * Constructor for TaskEditor	 */	public GraphColorsEditor(ProjectViewModel pvModel) {		super();		this.pvModel = pvModel;		JPanel p1 = new JPanel();		GridBagLayout gridbag = new GridBagLayout();		GridBagConstraints c = new GridBagConstraints();		c.fill = GridBagConstraints.BOTH;		p1.setLayout(gridbag);		GraphColors gc = pvModel.getProject().getGraphColors();		addColor(p1, c, gc, "text", "Header Text");		addColor(p1, c, gc, "titleFg", "Header lines");		addColor(p1, c, gc, "titleBg", "Header background");		// addColor(p1, c, gc, "graph");		addColor(p1, c, gc, "background", "Gantt background");		addColor(p1, c, gc, "weekEnd", "Weekends");		addColor(p1, c, gc, "holiday", "Holidays");		addColor(p1, c, gc, "now", "Today");		JPanel p3 = new JPanel();		gridbag = new GridBagLayout();		c = new GridBagConstraints();		c.fill = GridBagConstraints.BOTH;		p3.setLayout(gridbag);		addLabel(p3, c, "Vertical lines");		addCheck(p3, c, gc, "drawMinorLines");		addColor(p3, c, gc, "div", "Minor lines");		addColor(p3, c, gc, "mayorDiv", "Major lines");		addLabel(p3, c, "Horizontal Lines");		addCheck(p3, c, gc, "drawTaskLines");		addColor(p3, c, gc, "horLine", "Task lines");		JPanel p2 = new JPanel();		gridbag = new GridBagLayout();		c = new GridBagConstraints();		c.fill = GridBagConstraints.BOTH;		p2.setLayout(gridbag);		TaskColors tc = gc.defaultTaskColors;		//addLabel(p2, c, "Task");		addColor(p2, c, tc, "barBg", "Bar background");		addColor(p2, c, tc, "barLine", "Bar line");		addColor(p2, c, tc, "barCompleted", "Bar completed");		addColor(p2, c, tc, "constraint", "Constraint line");		addColor(p2, c, tc, "text", "Text");		addColor(p2, c, gc, "snapshot", "Snapshot shadow");		TaskTreeOptions tt = pvModel.getProject().getTreeColors();		addFont(p2, c, tt, "cellFont", "Font");		JPanel p4 = new JPanel();		gridbag = new GridBagLayout();		c = new GridBagConstraints();		c.fill = GridBagConstraints.BOTH;		p4.setLayout(gridbag);		tc = gc.defaultResumeColors;		//addLabel(p4, c, "Resume Task");		addColor(p4, c, tc, "barBg", "Bar background");		addColor(p4, c, tc, "barLine", "Bar line");		addColor(p4, c, tc, "barCompleted", "Bar completed");		addColor(p4, c, tc, "constraint", "Constraint line");		addColor(p4, c, tc, "text", "Text");		addColor(p4, c, gc, "snapshot", "Snapshot shadow");		addFont(p4, c, tt, "cellResumeFont", "Font");		addTab("General", null, p1, "Headers and holidays");		addTab("Grid", null, p3, "Lines & colors");		addTab("Tasks", null, p2, "Colors for tasks");		addTab("Resumes", null, p4, "Colors for resume tasks");		setPreferredSize(new Dimension(300, 230));	}}

⌨️ 快捷键说明

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