📄 vertexpropertysource.java
字号:
package org.drools.ide.editors.rete.model;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.drools.reteoo.AlphaNodeVertex;
import org.drools.reteoo.BaseVertex;
import org.drools.reteoo.EvalConditionNodeVertex;
import org.drools.reteoo.JoinNodeVertex;
import org.drools.reteoo.LeftInputAdapterNodeVertex;
import org.drools.reteoo.NotNodeVertex;
import org.drools.reteoo.ObjectTypeNodeVertex;
import org.drools.reteoo.ReteVertex;
import org.drools.reteoo.RightInputAdapterNodeVertex;
import org.drools.reteoo.TerminalNodeVertex;
import org.drools.spi.FieldConstraint;
import org.eclipse.ui.views.properties.IPropertyDescriptor;
import org.eclipse.ui.views.properties.IPropertySource;
import org.eclipse.ui.views.properties.PropertyDescriptor;
/**
* Providing IPropertySource for property sheets that show
* rete graph vertex properties.
*
*/
public class VertexPropertySource
implements
IPropertySource {
private static final String VERTEX_TERMINAL = "Terminal BaseVertex";
private static final String VERTEX_EVAL_CONDITION = "Eval Condition BaseVertex";
private static final String VERTEX_NOT = "Not BaseVertex";
private static final String VERTEX_JOIN = "Join BaseVertex";
private static final String VERTEX_RIGHT_INPUT_ADAPTER = "Right Input Adapter BaseVertex";
private static final String VERTEX_LEFT_INPUT_ADAPTER = "Left Input Adapter BaseVertex";
private static final String VERTEX_ALPHA = "Alpha BaseVertex";
private static final String VERTEX_OBJECT_TYPE = "Object Type BaseVertex";
private static final String VERTEX_RETE = "Rete BaseVertex";
private static final String CONSTRAINT_CAP = "Constraint";
private static final String CONSTRAINT = "constraint";
public String ID_ROOT = "vertex"; //$NON-NLS-1$
public String ID_ID = "id"; //$NON-NLS-1$
public String ID_HTML = "html"; //$NON-NLS-1$
private IPropertyDescriptor[] descriptors;
private final IPropertyDescriptor PROP_NAME = new PropertyDescriptor( "name",
"Name" );
private final IPropertyDescriptor PROP_ID = new PropertyDescriptor( "id",
"ID" );
private final IPropertyDescriptor PROP_RULE = new PropertyDescriptor( "rule",
"Rule" );
// Alpha-specific
private final IPropertyDescriptor PROP_ALPHA_FIELD_NAME = new PropertyDescriptor( "fieldName",
"Field Name" );
private final IPropertyDescriptor PROP_ALPHA_EVALUATOR = new PropertyDescriptor( "evaluator",
"Evaluator" );
private final IPropertyDescriptor PROP_ALPHA_VALUE = new PropertyDescriptor( "value",
"Value" );
// ObjectType specific
private final IPropertyDescriptor PROP_OBJ_TYPE = new PropertyDescriptor( "objectType",
"Object Type" );
private final static String CAT_GENERAL = "General";
private final static String CAT_OTHER = "Other";
protected BaseVertex vertex = null;
// Map<String,NodeValue>
private Map values = new HashMap();
/**
* Constructor initializing properties from <code>vertex</code>
*
* @param vertex source vertex for this property source
*/
public VertexPropertySource(BaseVertex vertex) {
this.vertex = vertex;
initProperties( vertex );
}
final private void initProperties(BaseVertex vertex) {
List descriptorList = new ArrayList();
if ( vertex instanceof TerminalNodeVertex ) {
initTerminalNodeProperties( (TerminalNodeVertex) vertex,
descriptorList,
values );
} else if ( vertex instanceof EvalConditionNodeVertex ) {
initEvalConditionNodeProperties( (EvalConditionNodeVertex) vertex,
descriptorList,
values );
} else if ( vertex instanceof NotNodeVertex ) {
initNotNodeProperties( (NotNodeVertex) vertex,
descriptorList,
values );
} else if ( vertex instanceof JoinNodeVertex ) {
initJoinNodeProperties( (JoinNodeVertex) vertex,
descriptorList,
values );
} else if ( vertex instanceof RightInputAdapterNodeVertex ) {
initRightInputAdapterNodeProperties( descriptorList,
values );
} else if ( vertex instanceof LeftInputAdapterNodeVertex ) {
initLeftInputAdapterNodeProperties( (LeftInputAdapterNodeVertex) vertex,
descriptorList,
values );
} else if ( vertex instanceof AlphaNodeVertex ) {
initAlphaNodeProperties( (AlphaNodeVertex) vertex,
descriptorList,
values );
} else if ( vertex instanceof ObjectTypeNodeVertex ) {
initObjectTypeNodeProperties( (ObjectTypeNodeVertex) vertex,
descriptorList,
values );
} else if ( vertex instanceof ReteVertex ) {
initReteNodeProperties( (ReteVertex) vertex,
descriptorList,
values );
}
descriptors = (IPropertyDescriptor[]) descriptorList.toArray( new IPropertyDescriptor[0] );
}
private void initReteNodeProperties(ReteVertex vertex,
List descriptorList,
Map valueMap) {
addProperty( PROP_NAME,
VERTEX_RETE,
descriptorList,
valueMap );
addProperty( PROP_ID,
Integer.toString( vertex.getId() ),
descriptorList,
valueMap );
}
private void initObjectTypeNodeProperties(ObjectTypeNodeVertex vertex,
List descriptorList,
Map valueMap) {
addProperty( PROP_NAME,
VERTEX_OBJECT_TYPE,
descriptorList,
valueMap );
addProperty( PROP_OBJ_TYPE,
vertex.getObjectType(),
descriptorList,
valueMap );
}
private void initAlphaNodeProperties(AlphaNodeVertex vertex,
List descriptorList,
Map valueMap) {
addProperty( PROP_NAME,
VERTEX_ALPHA,
descriptorList,
valueMap );
addProperty( PROP_ALPHA_FIELD_NAME,
vertex.getFieldName(),
descriptorList,
valueMap );
addProperty( PROP_ALPHA_EVALUATOR,
vertex.getEvaluator(),
descriptorList,
valueMap );
addProperty( PROP_ALPHA_VALUE,
vertex.getValue(),
descriptorList,
valueMap );
FieldConstraint constraint = vertex.getConstraint();
if ( constraint == null ) {
return;
}
IPropertyDescriptor prop = new PropertyDescriptor( CONSTRAINT,
CONSTRAINT_CAP );
addProperty( prop,
constraint.toString(),
descriptorList,
valueMap );
}
private void initLeftInputAdapterNodeProperties(LeftInputAdapterNodeVertex vertex,
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -