@Override public void setup( AttributeColumnsManipulator m, GraphModel graphModel, Table table, Column column, DialogControls dialogControls) { this.table = table; this.dialogControls = dialogControls; this.manipulator = (ConvertColumnToDynamic) m; buildValidationPanel(); descriptionLabel.setText( NbBundle.getMessage( ConvertColumnToDynamicTimestampsUI.class, "ConvertColumnToDynamicUI.descriptionLabel.text", column.getTitle())); titleTextField.setText( NbBundle.getMessage( ConvertColumnToDynamicTimestampsUI.class, "ConvertColumnToDynamicUI.new.title", column.getTitle())); refreshTitleEnabledState(); }
public ColumnEstimator(Column column) { this.column = column; this.comboBox = new JComboBox(); this.label = new JLabel(column.getTitle()); initAvailableEstimators(); Estimator currentEstimator = column.getEstimator(); comboBox.setSelectedItem(new EstimatorWrapper(currentEstimator)); }
@Test public void testGetAttributeKeys() { GraphStore store = new GraphStore(); Column column = generateBasicColumn(store); NodeImpl node = new NodeImpl("0", store); Set<String> pk = node.getAttributeKeys(); Assert.assertTrue(pk.contains(column.getId())); Assert.assertEquals(pk.size(), 1 + getElementPropertiesLength()); }
@Test public void testGetAttributeKey() { GraphStore store = new GraphStore(); Column column = generateBasicColumn(store); NodeImpl node = new NodeImpl("0", store); node.setAttribute(column, 1); Object res = node.getAttribute(column.getId()); Assert.assertEquals(res, 1); }
protected String getId(Transformer transformer, Column column) { return getIdPrefix() + "_" + transformer.getClass().getSimpleName() + "_column_" + column.getId(); }
@Test public void testGetAttributeColumnsEmpty() { GraphStore store = new GraphStore(); NodeImpl node = new NodeImpl("0", store); Iterable<Column> pk = node.getAttributeColumns(); Assert.assertNotNull(pk); Iterator<Column> itr = pk.iterator(); Assert.assertNotNull(itr); int size = 0; for (; itr.hasNext(); ) { Column c = itr.next(); Assert.assertTrue(c.isProperty()); size++; } Assert.assertTrue(size == getElementPropertiesLength()); }
@Test public void testGetDefaultValue() { GraphStore store = new GraphStore(); Integer defaultValue = 25; Column column = new ColumnImpl("age", Integer.class, "Age", defaultValue, Origin.DATA, true, false); store.nodeTable.store.addColumn(column); NodeImpl node = new NodeImpl("0", store); Object res = node.getAttribute(column.getId()); Assert.assertEquals(res, defaultValue); node.setAttribute(column, null); res = node.getAttribute(column.getId()); Assert.assertEquals(res, defaultValue); node.setAttribute(column, 1); res = node.getAttribute(column.getId()); Assert.assertEquals(res, 1); }
@Test public void testGetTimestampAttributeInView() { GraphStore store = new GraphStore(); Column column = generateTimestampColumn(store); NodeImpl node = new NodeImpl("0", store); GraphView view = store.viewStore.createView(); Assert.assertNull(node.getAttribute(column, view)); node.setAttribute(column, 10, 1.0); Assert.assertEquals(node.getAttribute(column, view), 10); node.setAttribute(column, 0, 5.0); node.setAttribute(column, 20, 2.0); store.viewStore.setTimeInterval(view, new Interval(5.0, 5.0)); Assert.assertEquals(node.getAttribute(column, view), 0); store.viewStore.setTimeInterval(view, new Interval(1.0, 2.0)); Assert.assertEquals(node.getAttribute(column, view), 10); column.setEstimator(Estimator.AVERAGE); Assert.assertEquals(node.getAttribute(column, view), 15.0); Assert.assertEquals(node.getAttribute("age", view), 15.0); }
private boolean isRanking(Graph graph, Column column) { if (column.isDynamic() && column.isNumber()) { ElementIterable<? extends Element> iterable = AttributeUtils.isNodeColumn(column) ? graph.getNodes() : graph.getEdges(); for (Element el : iterable) { if (el.getAttribute(column, graph.getView()) != null) { iterable.doBreak(); return true; } } } else if (!column.isDynamic() && column.isIndexed() && column.isNumber()) { Index index; if (AttributeUtils.isNodeColumn(column)) { index = localScale ? graphModel.getNodeIndex(graph.getView()) : graphModel.getNodeIndex(); } else { index = localScale ? graphModel.getEdgeIndex(graph.getView()) : graphModel.getEdgeIndex(); } if (index.countValues(column) > 0) { return true; } } return false; }
private boolean isPartition(Graph graph, Column column) { if (column.isDynamic()) { Set<Object> set = new HashSet<Object>(); boolean hasNullValue = false; int elements = 0; ElementIterable<? extends Element> iterable = AttributeUtils.isNodeColumn(column) ? graph.getNodes() : graph.getEdges(); for (Element el : iterable) { TimeMap val = (TimeMap) el.getAttribute(column); if (val != null) { Object[] va = val.toValuesArray(); for (Object v : va) { if (v != null) { set.add(v); } else { hasNullValue = true; } elements++; } } } double ratio = set.size() / (double) elements; return ratio <= 0.9; } else if (column.isIndexed()) { Index index; if (AttributeUtils.isNodeColumn(column)) { index = graphModel.getNodeIndex(graph.getView()); } else { index = graphModel.getEdgeIndex(graph.getView()); } int valueCount = index.countValues(column); int elementCount = index.countElements(column); double ratio = valueCount / (double) elementCount; return ratio <= 0.9; } return false; }
private void initAvailableEstimators() { Class<? extends TimeMap> type = column.getTypeClass(); try { TimeMap dummy = type.newInstance(); for (Estimator estimator : Estimator.values()) { if (dummy.isSupported(estimator)) { comboBox.addItem(new EstimatorWrapper(estimator)); } } } catch (InstantiationException ex) { throw new RuntimeException(ex); } catch (IllegalAccessException ex) { throw new RuntimeException(ex); } }
@Override public void setValueAsString(String value) { setValueToAllElements(AttributeUtils.parse(value, column.getTypeClass())); }
protected String getIdCol(Column column) { return (AttributeUtils.isNodeColumn(column) ? "node" : "edge") + "_column_" + column.getId(); }
private void refreshAttributeFunctions(boolean graphHasChanged) { Set<Column> columns = new HashSet<Column>(); for (Column column : getTable()) { if (!column.isProperty()) { columns.add(column); } } // Clean for (Iterator<Map.Entry<Column, ColumnObserver>> itr = columnObservers.entrySet().iterator(); itr.hasNext(); ) { Map.Entry<Column, ColumnObserver> entry = itr.next(); if (!columns.contains(entry.getKey()) || forcedColumnsRefresh.contains(entry.getKey())) { rankings.remove(getIdCol(entry.getKey())); partitions.remove(getIdCol(entry.getKey())); for (Transformer t : getTransformers()) { attributeFunctions.remove(getId(t, entry.getKey())); } itr.remove(); if (!entry.getValue().isDestroyed()) { entry.getValue().destroy(); } } } // Get columns to be refreshed Set<Column> toRefreshColumns = new HashSet<Column>(forcedColumnsRefresh); for (Column column : columns) { if (!columnObservers.containsKey(column)) { columnObservers.put(column, column.createColumnObserver()); toRefreshColumns.add(column); } else if (columnObservers.get(column).hasColumnChanged() || graphHasChanged) { toRefreshColumns.add(column); } } forcedColumnsRefresh.clear(); // Refresh ranking and partitions for (Column column : toRefreshColumns) { RankingImpl ranking = rankings.get(getIdCol(column)); PartitionImpl partition = partitions.get(getIdCol(column)); if (ranking == null && partition == null) { String id = getIdCol(column); if (forcedPartition.contains(id) || (!forcedRanking.contains(id) && isPartition(graph, column))) { if (column.isIndexed()) { partition = new AttributePartitionImpl(column, getIndex(false)); } else { partition = new AttributePartitionImpl(column, graph); } partitions.put(getIdCol(column), partition); } if (forcedRanking.contains(id) || isRanking(graph, column)) { if (column.isIndexed()) { ranking = new AttributeRankingImpl(column, getIndex(localScale)); } else { ranking = new AttributeRankingImpl(column, graph); } rankings.put(getIdCol(column), ranking); } } if (ranking != null) { ranking.refresh(); } if (partition != null) { partition.refresh(); } } // Ranking functions for (Transformer t : getRankingTransformers()) { for (Column col : toRefreshColumns) { RankingImpl ranking = rankings.get(getIdCol(col)); if (ranking != null) { String id = getId(t, col); if (!attributeFunctions.containsKey(id)) { attributeFunctions.put( id, new AttributeFunctionImpl( id, graph, col, t, getTransformerUI(t), ranking, defaultInterpolator)); } } } } // Partition functions for (Transformer t : getPartitionTransformers()) { for (Column col : toRefreshColumns) { PartitionImpl partition = partitions.get(getIdCol(col)); if (partition != null) { String id = getId(t, col); if (!attributeFunctions.containsKey(id)) { attributeFunctions.put( id, new AttributeFunctionImpl(id, graph, col, t, getTransformerUI(t), partition)); } } } } }
@Override public boolean canExecute() { return AttributeUtils.isNumberType(column.getTypeClass()); }