SCViewer/com.itjw.txviewer.graph/src/com/itjw/txviewer/graph/data/ITransactionProperties.java

118 lines
4.2 KiB
Java

/*******************************************************************************
* Copyright (c) 2012 IT Just working.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* IT Just working - initial API and implementation
*******************************************************************************/
package com.itjw.txviewer.graph.data;
import java.util.ArrayList;
import java.util.List;
import org.eclipse.ui.views.properties.IPropertyDescriptor;
import org.eclipse.ui.views.properties.IPropertySource;
import org.eclipse.ui.views.properties.PropertyDescriptor;
import com.itjw.txviewer.database.ITrAttribute;
import com.itjw.txviewer.database.ITransaction;
public class ITransactionProperties implements IPropertySource {
private ITransaction iTransaction;
public final static String PROPERTY_ID = "ID";
public final static String PROPERTY_BEGINTIME = "BEGINTIME";
public final static String PROPERTY_ENDTIME = "ENDTIME";
protected IPropertyDescriptor[] propertyDescriptors;
public ITransactionProperties(ITransaction iTransaction) {
this.iTransaction=iTransaction;
}
@Override
public Object getEditableValue() {
return null;
}
@Override
public IPropertyDescriptor[] getPropertyDescriptors() {
if (propertyDescriptors == null) {
ArrayList<IPropertyDescriptor> idDescriptor=new ArrayList<IPropertyDescriptor>();
// Create a descriptor and set a category
PropertyDescriptor nameDescriptor = new PropertyDescriptor(PROPERTY_ID, "Id");
nameDescriptor.setCategory("Attributes");
idDescriptor.add(nameDescriptor);
PropertyDescriptor begTimeDescriptor = new PropertyDescriptor(PROPERTY_BEGINTIME, "Begin time");
begTimeDescriptor.setCategory("Attributes");
idDescriptor.add(begTimeDescriptor);
PropertyDescriptor endTimeDescriptor = new PropertyDescriptor(PROPERTY_ENDTIME, "End time");
endTimeDescriptor.setCategory("Attributes");
idDescriptor.add(endTimeDescriptor);
// for(ITrAttribute attr:iTransaction.getBeginAttrs()){
// PropertyDescriptor descr = new PropertyDescriptor("BEGIN_"+attr.getName(), attr.getName());
// descr.setCategory("Begin attributes");
// idDescriptor.add(descr);
// }
// for(ITrAttribute attr:iTransaction.getEndAttrs()){
// PropertyDescriptor descr = new PropertyDescriptor("END_"+attr.getName(), attr.getName());
// descr.setCategory("End attributes");
// idDescriptor.add(descr);
// }
// for(ITrAttribute attr:iTransaction.getAttributes()){
// PropertyDescriptor descr = new PropertyDescriptor("REC_"+attr.getName(), attr.getName());
// descr.setCategory("Recorded attributes");
// idDescriptor.add(descr);
// }
propertyDescriptors = idDescriptor.toArray(new IPropertyDescriptor[idDescriptor.size()]);
}
return propertyDescriptors;
}
@Override
public Object getPropertyValue(Object id) {
if (id.equals(PROPERTY_ID)) {
return iTransaction.getId();
} else if(id.equals(PROPERTY_BEGINTIME)){
return iTransaction.getBeginTime();//.getValueNS();
} else if(id.equals(PROPERTY_ENDTIME)){
return iTransaction.getEndTime();//.getValueNS();
} else if(id instanceof String){
String strId=(String)id;
List<ITrAttribute> set;
if(strId.startsWith("BEGIN_")){
set=iTransaction.getBeginAttrs();
} else if(strId.startsWith("END_")){
set=iTransaction.getEndAttrs();
} else {
set=iTransaction.getAttributes();
}
for(ITrAttribute attr:set){
if(strId.endsWith("_"+attr.getName())){
return attr.getValue();
}
}
}
return null;
}
@Override
public boolean isPropertySet(Object id) {
String curName = (String)getPropertyValue(id);
return curName!=null && curName.length()>0;
}
@Override
public void resetPropertyValue(Object id) {
}
@Override
public void setPropertyValue(Object id, Object value) {
}
}