@Override public boolean canChangeColumnData(Column column) { return !column.isReadOnly(); }
void checkReadOnlyColumn(Column column) { if (column.isReadOnly()) { throw new RuntimeException("Can't modify the read-only '" + column.getId() + "' column"); } }
@Override public boolean canDeleteColumn(Column column) { return !column.isReadOnly() && column.getOrigin() != Origin.PROPERTY; }
void checkReadOnlyColumn(Column column) { if (column.isReadOnly()) { throw new RuntimeException("Can't modify the read-only '" + column.getId() + "' column"); } }
@Override public boolean canClearColumnData(Column column) { if (isEdgeColumn(column) && column.getId().equalsIgnoreCase("weight")) { return false;//Should not remove weight value but grapshtore currently allows it } return !column.isReadOnly(); }
@Override public void setup(Node[] nodes, Node clickedNode) { this.nodes = nodes; selectedNode = clickedNode != null ? clickedNode : nodes[0]; Table nodeTable = Lookup.getDefault().lookup(GraphController.class).getGraphModel().getNodeTable(); List<Column> columnsList = new ArrayList<>(); for (Column column : nodeTable) { if(!column.isReadOnly()){ columnsList.add(column); } } columns = columnsList.toArray(new Column[0]); mergeStrategies = new AttributeRowsMergeStrategy[columns.length]; deleteMergedNodes = NbPreferences.forModule(MergeNodes.class).getBoolean(DELETE_MERGED_NODES_SAVED_PREFERENCES, true); }
@Override public ManipulatorUI getUI() { Table nodeTable = Lookup.getDefault().lookup(GraphController.class).getGraphModel().getNodeTable(); List<Column> columnsList = new ArrayList<>(); for (Column column : nodeTable) { if(!column.isReadOnly()){ columnsList.add(column); } } columns = columnsList.toArray(new Column[0]); mergeStrategies = new AttributeRowsMergeStrategy[columns.length]; deleteMergedNodes = NbPreferences.forModule(MergeNodeDuplicates.class).getBoolean(DELETE_MERGED_NODES_SAVED_PREFERENCES, true); caseSensitive = NbPreferences.forModule(MergeNodeDuplicates.class).getBoolean(CASE_SENSITIVE_SAVED_PREFERENCES, true); return new MergeNodeDuplicatesUI(); }
Column col = table.getColumn(id); if (col != null && !col.isReadOnly()) { try { Object val = AttributeUtils.parse(value, col.getTypeClass());
@Override public boolean canConvertColumnToDynamic(Column column) { if (column.isReadOnly() || AttributeUtils.isDynamicType(column.getTypeClass())) { return false; } try { //Make sure the simple type can actually be part of a dynamic type of intervals/timestamps //For example array types cannot be converted to dynamic AttributeUtils.getIntervalMapType(column.getTypeClass()); AttributeUtils.getTimestampMapType(column.getTypeClass()); } catch (Exception e) { return false; } if (isNodeColumn(column) || isEdgeColumn(column)) { return !column.getTitle().equalsIgnoreCase("Label"); } else { return true; } }
if (!column.isReadOnly()) { Object value = edge.getAttribute(column); if (value == null) {
private Node copyNode(Node node, Graph graph) { Node copy = buildNode(graph, node.getLabel()); //Copy properties (position, size and color): copy.setX(node.x()); copy.setY(node.y()); copy.setZ(node.z()); copy.setSize(node.size()); copy.setR(node.r()); copy.setG(node.g()); copy.setB(node.b()); copy.setAlpha(node.alpha()); Table nodeTable = graph.getModel().getNodeTable(); //Copy attributes: for (Column column : nodeTable) { if (!column.isReadOnly()) { copy.setAttribute(column, node.getAttribute(column)); } } graph.addNode(copy); return copy; }