提交 e7fddb1f 编写于 作者: M Mathieu Bastian

Fix issues #1354, #1355 and #1358

上级 8414e1b0
......@@ -47,9 +47,11 @@ import java.beans.PropertyEditorManager;
import org.gephi.graph.api.Column;
import org.gephi.datalab.api.AttributeColumnsController;
import org.gephi.graph.api.Edge;
import org.gephi.graph.api.GraphController;
import org.gephi.graph.api.TextProperties;
import org.gephi.graph.api.TimeFormat;
import org.gephi.ui.tools.plugin.edit.EditWindowUtils.*;
import org.joda.time.DateTimeZone;
import org.openide.nodes.AbstractNode;
import org.openide.nodes.Children;
import org.openide.nodes.PropertySupport;
......@@ -70,7 +72,8 @@ public class EditEdges extends AbstractNode {
private PropertySet[] propertySets;
private final Edge[] edges;
private final boolean multipleEdges;
private TimeFormat currentTimeFormat = TimeFormat.DOUBLE;
private final TimeFormat currentTimeFormat;
private final DateTimeZone dateTimeZone;
/**
* Single edge edition mode will always be enabled with this single node
......@@ -83,6 +86,10 @@ public class EditEdges extends AbstractNode {
this.edges = new Edge[]{edge};
setName(edge.getLabel());
multipleEdges = false;
GraphController gc = Lookup.getDefault().lookup(GraphController.class);
currentTimeFormat = gc.getGraphModel().getTimeFormat();
dateTimeZone = gc.getGraphModel().getTimeZone();
}
/**
......@@ -100,6 +107,10 @@ public class EditEdges extends AbstractNode {
} else {
setName(edges[0].getLabel());
}
GraphController gc = Lookup.getDefault().lookup(GraphController.class);
currentTimeFormat = gc.getGraphModel().getTimeFormat();
dateTimeZone = gc.getGraphModel().getTimeZone();
}
@Override
......@@ -132,9 +143,9 @@ public class EditEdges extends AbstractNode {
AttributeValueWrapper wrap;
for (Column column : row.getAttributeColumns()) {
if (multipleEdges) {
wrap = new MultipleRowsAttributeValueWrapper(edges, column, currentTimeFormat);
wrap = new MultipleRowsAttributeValueWrapper(edges, column, currentTimeFormat, dateTimeZone);
} else {
wrap = new SingleRowAttributeValueWrapper(edges[0], column, currentTimeFormat);
wrap = new SingleRowAttributeValueWrapper(edges[0], column, currentTimeFormat, dateTimeZone);
}
Class<?> type = column.getTypeClass();
Property p;
......@@ -147,11 +158,13 @@ public class EditEdges extends AbstractNode {
p = new PropertySupport.Reflection(wrap, String.class, "getValueAsString", "setValueAsString");
}
} else //Not editable column, do not provide "set" method:
if (propEditor != null) {//The type can be edited by default:
{
if (propEditor != null) {//The type can be edited by default:
p = new PropertySupport.Reflection(wrap, type, "getValue" + type.getSimpleName(), null);
} else {//Use the AttributeType as String:
p = new PropertySupport.Reflection(wrap, String.class, "getValueAsString", null);
}
}
p.setDisplayName(column.getTitle());
p.setName(column.getId());
set.put(p);
......
......@@ -46,10 +46,12 @@ import java.beans.PropertyEditor;
import java.beans.PropertyEditorManager;
import org.gephi.graph.api.Column;
import org.gephi.datalab.api.AttributeColumnsController;
import org.gephi.graph.api.GraphController;
import org.gephi.graph.api.Node;
import org.gephi.graph.api.TextProperties;
import org.gephi.graph.api.TimeFormat;
import org.gephi.ui.tools.plugin.edit.EditWindowUtils.AttributeValueWrapper;
import org.joda.time.DateTimeZone;
import org.openide.nodes.AbstractNode;
import org.openide.nodes.Children;
import org.openide.nodes.PropertySupport;
......@@ -70,7 +72,8 @@ public class EditNodes extends AbstractNode {
private PropertySet[] propertySets;
private final Node[] nodes;
private final boolean multipleNodes;
private final TimeFormat currentTimeFormat = TimeFormat.DOUBLE;
private final TimeFormat currentTimeFormat;
private final DateTimeZone dateTimeZone;
/**
* Single node edition mode will always be enabled with this single node
......@@ -83,6 +86,10 @@ public class EditNodes extends AbstractNode {
this.nodes = new Node[]{node};
setName(node.getLabel());
multipleNodes = false;
GraphController gc = Lookup.getDefault().lookup(GraphController.class);
currentTimeFormat = gc.getGraphModel().getTimeFormat();
dateTimeZone = gc.getGraphModel().getTimeZone();
}
/**
......@@ -100,6 +107,9 @@ public class EditNodes extends AbstractNode {
} else {
setName(nodes[0].getLabel());
}
GraphController gc = Lookup.getDefault().lookup(GraphController.class);
currentTimeFormat = gc.getGraphModel().getTimeFormat();
dateTimeZone = gc.getGraphModel().getTimeZone();
}
@Override
......@@ -132,9 +142,9 @@ public class EditNodes extends AbstractNode {
AttributeValueWrapper wrap;
for (Column column : row.getAttributeColumns()) {
if (multipleNodes) {
wrap = new MultipleRowsAttributeValueWrapper(nodes, column, currentTimeFormat);
wrap = new MultipleRowsAttributeValueWrapper(nodes, column, currentTimeFormat, dateTimeZone);
} else {
wrap = new SingleRowAttributeValueWrapper(nodes[0], column, currentTimeFormat);
wrap = new SingleRowAttributeValueWrapper(nodes[0], column, currentTimeFormat, dateTimeZone);
}
Property p;
......
......@@ -46,6 +46,7 @@ import org.gephi.graph.api.Column;
import org.gephi.graph.api.Element;
import org.gephi.graph.api.TimeFormat;
import org.gephi.ui.tools.plugin.edit.EditWindowUtils.AttributeValueWrapper;
import org.joda.time.DateTimeZone;
/**
*
......@@ -57,23 +58,19 @@ public class MultipleRowsAttributeValueWrapper implements AttributeValueWrapper
private final Column column;
private Object value;
private final TimeFormat currentTimeFormat;
private final DateTimeZone dateTimeZone;
public MultipleRowsAttributeValueWrapper(Element [] rows, Column column, TimeFormat currentTimeFormat) {
public MultipleRowsAttributeValueWrapper(Element[] rows, Column column, TimeFormat currentTimeFormat, DateTimeZone dateTimeZone) {
this.rows = rows;
this.column = column;
this.currentTimeFormat = currentTimeFormat;
this.dateTimeZone = dateTimeZone;
this.value = null;
}
private String convertToStringIfNotNull() {
if (value != null) {
// TODO adapt this
// if (value instanceof DynamicType) {
// return ((DynamicType) value).toString(currentTimeFormat == DynamicModel.TimeFormat.DOUBLE);
// } else {
// return value.toString();
// }
return value.toString();
return AttributeUtils.print(value, currentTimeFormat, dateTimeZone);
} else {
return null;
}
......
......@@ -45,6 +45,7 @@ import org.gephi.graph.api.AttributeUtils;
import org.gephi.graph.api.Column;
import org.gephi.graph.api.Element;
import org.gephi.graph.api.TimeFormat;
import org.joda.time.DateTimeZone;
/**
*
......@@ -55,23 +56,19 @@ public class SingleRowAttributeValueWrapper implements EditWindowUtils.Attribute
private final Element row;
private final Column column;
private final TimeFormat currentTimeFormat;
private final DateTimeZone dateTimeZone;
public SingleRowAttributeValueWrapper(Element row, Column column, TimeFormat currentTimeFormat) {
public SingleRowAttributeValueWrapper(Element row, Column column, TimeFormat currentTimeFormat, DateTimeZone dateTimeZone) {
this.row = row;
this.column = column;
this.currentTimeFormat = currentTimeFormat;
this.dateTimeZone = dateTimeZone;
}
private String convertToStringIfNotNull() {
Object value = row.getAttribute(column);
if (value != null) {
// TODO adapt this
// if (value instanceof DynamicType) {
// return ((DynamicType) value).toString(currentTimeFormat == DynamicModel.TimeFormat.DOUBLE);
// } else {
// return value.toString();
// }
return value.toString();
return AttributeUtils.print(value, currentTimeFormat, dateTimeZone);
} else {
return null;
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册