|
What this is
Other links
The source code
/*
* Sun Public License Notice
*
* The contents of this file are subject to the Sun Public License
* Version 1.0 (the "License"). You may not use this file except in
* compliance with the License. A copy of the License is available at
* http://www.sun.com/
*
* The Original Code is NetBeans. The Initial Developer of the Original
* Code is Sun Microsystems, Inc. Portions Copyright 1997-2004 Sun
* Microsystems, Inc. All Rights Reserved.
*/
package org.netbeans.modules.vcs.advanced.conditioned;
import java.awt.Component;
import java.beans.PropertyEditor;
import java.beans.PropertyEditorSupport;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import org.netbeans.modules.vcs.advanced.variables.Condition;
import org.netbeans.modules.vcscore.cmdline.exec.StructuredExec;
/**
* This class represents a property value under different conditions.
*
* @author Martin Entlicher
*/
public class ConditionedObject extends Object {
private String name;
protected Map valuesByIfUnlessConditions;
/**
* Creates the conditioned property. Clone all conditions and wrap them by IfUnlessCondition.
*/
public ConditionedObject(String name, Map valuesByConditions) {
this.name = name;
this.valuesByIfUnlessConditions = new HashMap();
for (Iterator it = valuesByConditions.keySet().iterator(); it.hasNext(); ) {
Condition c = (Condition) it.next();
Condition cc = (c != null) ? (Condition) c.clone() : c;
valuesByIfUnlessConditions.put(new IfUnlessCondition(cc), valuesByConditions.get(c));
}
}
public String getName() {
return name;
}
public IfUnlessCondition[] getIfUnlessConditions() {
return (IfUnlessCondition[]) valuesByIfUnlessConditions.keySet().toArray(new IfUnlessCondition[0]);
}
public Object getObjectValue(IfUnlessCondition iuc) {
return valuesByIfUnlessConditions.get(iuc);
}
public void setObjectValue(IfUnlessCondition iuc, Object value) {
valuesByIfUnlessConditions.put(iuc, value);
}
public void removeValue(IfUnlessCondition iuc) {
valuesByIfUnlessConditions.remove(iuc);
}
public Map getValuesByConditions() {
Map valuesByConditions = new HashMap();
for (Iterator it = valuesByIfUnlessConditions.keySet().iterator(); it.hasNext(); ) {
IfUnlessCondition iuc = (IfUnlessCondition) it.next();
valuesByConditions.put(iuc.getCondition(), valuesByIfUnlessConditions.get(iuc));
}
return valuesByConditions;
}
public String toString() {
if (valuesByIfUnlessConditions.size() == 1) {
Object value = valuesByIfUnlessConditions.values().iterator().next();
return ""+value;
} else {
return org.openide.util.NbBundle.getMessage(ConditionedObject.class,
"ConditionedValue.text");
}
}
public static ConditionedObject createConditionedObject(String name, Map valuesByConditions,
Class valueType) {
if (valueType.equals(String.class)) {
return new ConditionedString(name, valuesByConditions);
} else if (valueType.equals(Integer.TYPE)) {
return new ConditionedInteger(name, valuesByConditions);
} else if (valueType.equals(Boolean.TYPE)) {
return new ConditionedBoolean(name, valuesByConditions);
} else {
return new ConditionedObject(name, valuesByConditions);
}
}
public static PropertyEditor getConditionedPropertyEditor(Class propertyClass) {
if (propertyClass.equals(String.class)) {
return new ConditionedString.ConditionedStringPropertyEditor();
} else if (propertyClass.equals(Integer.TYPE)) {
return new ConditionedInteger.ConditionedIntegerPropertyEditor();
} else if (propertyClass.equals(Boolean.TYPE)) {
return new ConditionedBoolean.ConditionedBooleanPropertyEditor();
//} else if (propertyClass.equals(StructuredExec.class)) {
// return new ConditionedStructuredExecEditor();
} else {
throw new IllegalArgumentException("No property editor for class "+propertyClass);
}
}
/*
public static final class ConditionedObjectPropertyEditor extends PropertyEditorSupport {
private ConditionedObject co;
public Object getValue() {
return co;
}
public void setValue(Object value) {
if (!(value instanceof ConditionedObject)) {
throw new IllegalArgumentException(""+value);
}
//cs = (ConditionedString) ((ConditionedString) value).clone();
co = (ConditionedObject) value;
firePropertyChange();
}
public Component getCustomEditor() {
return new ConditionedObjectPanel (co);
}
public boolean supportsCustomEditor() {
return true;
}
public String getAsText() {
return co.toString();
}
public void setAsText(String text) {
IfUnlessCondition[] iucs = co.getIfUnlessConditions();
if (iucs.length == 1) {
co.setObjectValue(iucs[0], text);
} else {
// Do nothing, there are different values.
}
}
}
*/
}
|
| ... this post is sponsored by my books ... | |
#1 New Release! |
FP Best Seller |
Copyright 1998-2024 Alvin Alexander, alvinalexander.com
All Rights Reserved.
A percentage of advertising revenue from
pages under the /java/jwarehouse
URI on this website is
paid back to open source projects.