Development - 0.7beta

From Gephi:Wiki

Jump to: navigation, search

Contents

Roadmap

Fixing features for 0.7 version and fixing all major bugs. Add essential features to improve productivity with the tool.

Release page: https://launchpad.net/gephi/+milestone/0.7beta

Date: September 30, 2010

Release manager: Mathieu Bastian

Features highlight

  • New Data Laboratory (Manipulate columns, Search/Replace, Merge, Sparklines...)
  • Longitudinal network visualization, topology changing over time, as well as attributes
  • New Filters: NOT and MASK operators, Giant Component, Flatten (for hierarchical graphs)
  • StAX-based GEXF importers and exporters, fully working with hierarchy and longitudinal
  • Time Frame import, new option in 'Import Report' to import successive static files and transform into dynamic
  • Statistics reports now saved in Gephi projects
  • Localization is now possible, French and Spanish will be available soon

New features

  • New Data Laboratory (Manipulate columns, Search/Replace, Merge, Sparklines...)
  • Longitudinal network visualization, topology changing over time, as well as attributes
  • Timeline is now working properly, appears automatically when the graph is dynamic, single button to enable filtering
  • Show/Hide labels from filters - can be reset by the 'Reset Visible' action (left of graph window)
  • Display edge weight as labels on visualization
  • New StAX GEXF importer and exporter, with hierarchy and dynamic support
  • New List/Arrays attribute types. Can only be imported from GEXF for now.
  • NOT Operator (Filters)
  • MASK Operator (Filters) - keep edges according to source/target/both/any - can easily obtain neighbors of a set of nodes
  • Flatten Filter - Flatten a hierarchical graph to the visible view, transform meta-edges into normal edges
  • New Giant Component Filter
  • Time Frame import, new option in 'Import Report' to import successive static files and transform into dynamic
  • Zoom slider in visualization options
  • 'Import missing nodes' option in import report - choose whether to create them or not
  • Set size for the 'Reset Size' action, by right-clicking on the reset size button
  • Get degree column from Undirected graphs
  • Statistics reports now saved in Gephi projects
  • New 'Rescale Weight' option in Preview, to force weight looks the same as Overview
  • New 'Original' option for edges color in Preview, keeps the original edge color, coming from Partition for instance
  • Copy and move nodes to new or existing workspace
  • New preview presets
  • Localization is now possible, and change language from Gephi
  • When parallel edges are found during import, it now increases the weight of the edge by default
  • Option in Ego Filter to include the parent node or not
  • Meta-edges have now a separate scale slider in Visualization settings, change how thick they are compared to normal edges
  • Ranking and Partition list of attributes are now sorted
  • Ranking now updates itself with filtered graphs. Clicking on Apply will refresh bounds and the transformation (color, size) is correct
  • It's now possible to drag a filter sub query to become a main query
  • With dynamic attributes, Ranking, Partition, Visualization and Filters will use the current Timeline range to find values
  • Edge weight can be dynamic, type DYNAMIC_FLOAT. Force Atlas layout will use the current Timeline range
  • Filters are refreshed when the graph is modified, the current filter is reexecuted

Bugfixes

  • Wrong edge removed from Edge Weight filter (bug 603469)
  • Filtering with convex hulls displayed (bug 541819)
  • NullPointerException when filtering undirected graphs (bug 571153)
  • NullPointerException on importing dynamic graph (bug 581872)
  • gtk+ slider problem (bug 529913)
  • Meta-edges are not displayed (bug 584283)
  • Preview is not displaying meta-edges (bug 584289)
  • Errors with Yifan Hu MultiLevel Layout on a filtered graph (bug 594643)
  • Node Size Mode and Filter Paramaters don't save in project (bug 596430)
  • Memory Leak in GEXF/GraphML Parser (bug 596872)
  • Incorrect mutual edge weight on Preview (bug 610469)
  • Progress is not shown when opening/saving project (bug 594644)
  • Unable to cancel a project opening (bug 616415)
  • Slowness on picking a partition entry (bug 519549)
  • EdgeList Database Configuration is not saved (bug 571263)
  • 'start' and 'end' attributes are missing when exporting dynamic GEXF (bug 521848)
  • Partition "All Blacks" feature randomizes colors (bug 601066)
  • Filtered graph not exported with "Select" pressed (bug 573685)
  • Partition Settings in Filter not saved on switching workspaces (bug 616052)
  • Opening Archived ZIP files is broken (bug 578876)
  • Exception on clicking on 'Hierarchy' while running multilevel layout (bug 631663)
  • GraphML importer doesn't import node labels data (bug 581629)
  • Cannot save / saves as when opening a Gephi by doubleclick a graph in Windows (bug 583397)
  • ForceAtlas and Fruchterman Reingold not layouting with meta-edges (bug 584286)
  • Memory Leak in Graph Distance (bug 587450)
  • NullPointerException when executing the "Eigenvector Centrality" Statistic (bug 589731)
  • NullPointerException when switching between workspaces while a layout is running (bug 597458)
  • Can't drag a filter sub-query to become a root query (bug 626495)
  • Ranking parameters re-initialized at each new ranking (bug 594231)
  • Ranking not refreshed when graph filtered (bug 632459)
  • Node invisible (too small) when created with the node pencil (bug 574807)
  • Error when opening Plugin Center (bug 616829)
  • Can't select Postgresql driver in database import settings (bug 595223)
  • Can't display edge weight as text (bug 603134)
  • Import transform to Undirected don't merge weight (bug 603478)
  • Right click on workspace after deleting a node throws "node can't be null" (bug 605947)
  • In/Out degree metric doesn't work with undirected graphs (bug 606305)
  • NullPointerException when selecting "--Choose a Layout" in the Layout ComboBox (bug 606964)
  • Workspace Selection failed to refresh after closing workspace (bug 616814)
  • Visualization selection color inversion between 'out' and 'both' color (bug 618726)
  • 'Format' not recognized on DL import (bug 619069)
  • Edit window not hidden on tabs (bug 552494)
  • dynamic graph unrecognized if everlasting nodes (bug 555637)
  • FileNotFoundException during saving of PDF file (bug 572876)
  • "Node must be in the graph" error when importing a hierarchical graph with height greater than 1 (bug 577180)
  • Auto-scale flips the graph (bug 577843)
  • Impossible to cancel the Average Path Length Statistic calculation (bug 590226)
  • Preview ratio not available at first time (bug 594176)
  • Default selection of Nodes in Data Laboratory necessary (bug 594515)
  • "CommandLineParsing null" message when error on opening file from command line or desktop (bug 594630)
  • Can't import the same file twice in Welcome window (bug 598157)
  • csv file export problem (bug 598767)
  • Can't close project when generating a graph (bug 631341)
  • Visualization size limitation (bug 602470)
  • duplicate label in filter window (bug 604003)
  • Partitions don't refresh when opening project not from Overview (bug 612902)
  • z-coordinate not exported in GraphML (bug 614606)
  • Wrong node positions when setting X or Y to zero (bug 615844)
  • Selected filter query not properly refreshed in UI (bug 626483)
  • Export to pdf background is always white (bug 583386)
  • SVG files not listed in Export dialog (bug 626394)
  • Wrong node size when Ranking has same min and max size (bug 631689)
  • Read positions from dot files (bug 594793)
  • Ranking and Partition parameters list not ordered (bug 594520)
  • Node Degree not in Label Text settings (bug 598170)
  • Wrong folder selected in the Export Panel when changing file type (bug 620337)
  • Generating a graph on a previously loaded undirected graph (bug 624671)
  • Wrong stroke weight when SVG imported in Illustrator (bug 626378)
  • Filtering not refreshed when sub-queries set or removed (bug 594511)
  • Errors at PDF export when labels have font size zero (bug 626865)
  • Text not displayed in Preview (bug 627567)
  • Edges native color are not displayed in Preview (bug 586237)
  • Edge weight scale is different between Graph and Preview (bug 569329)
  • Negative edges not rendered in Preview (bug 628223)
  • Edges weight not merged with parallel edges (bug 648600)
  • Partition filter automatically filters null value (bug 648600)
  • Exception on opening project file (bug 648617)
  • Ego Filter doesn't include the node itself (bug 649908)
  • PDF Export only with default font (bug 651273)
  • Nodes not unselected after turning off Selection on Filter Panel (bug 649920)

API

  • Add a flatten() method to HierarchicalGraph to flatten the hierarchical graph and transform meta edges into regular edges.
  • Add destroy(Filter filter) in FilterBuilder to receive notification when a filter query is removed and clean-up.
  • Add MetaEdgeBuilder in Graph SPI to allow custom builders. Add GraphSettings.setMetaEdgeBuilder() in the graph model settings.
  • Modify StatisticsModel to store reports directly instead of Statistics instance. As a consequence, the model has now a getReport() and a getResult() method that UI can use. The currently running statistics can now be get with a new getRunning() method.
  • Simplify and improve attribute events management. Event listeners now subscribe directly from the AttributeModel instead of AttributeTable and will receive events for all tables. Refactoring of the AttributeEvent class with AttributeTable as source and a new AttributeEventData object as data. A new SET_VALUE has been implemented for getting events when attribute values are set.
  • Changes in AttributeRowFactory, the newNodeRow() method now takes the owner object NodeData as a parameter. Similarly for newEdgeRow() and newRowForTable().
  • Add getEdge(Node, Node) in GraphAPI for consistency reasons.
  • Changes in Processor SPI. The Processor has now setters instead of a process() method with parameters. How processors are created remains the same. Creation of a ProcessorUI interface for processors settings configuration. A ProcessorUI implementation provides a panel, which is shown when the import report is closing. The ProcessorUI also allows to disable a processor with some conditions.
  • Add getColor() method in NodeDraft and EdgeDraft.
  • Define the "Overview, "Data Laboratory" and "Preview" as perspectives. Create a new SPI for perspecives and perspective members. Members are simply the TopComponent that belong to a perspective. Plugins can implement PerspectiveMember to define the open and close behaviour.
  • Add list/array types in Attributes API. All native types has now a related list type, except dynamic types. The list types inherits from AbstractList.
  • Changes in the way Import API deals with time intervals and dynamic data. Support for dynamic attributes has been added with a new addAttributeValue() method in NodeDraft and EdgeDraft. For improving data cleanup possibilities, NodeDraftGetter and EdgeDraftgetter now returns an AttributeRow instead of a list of attribute values only. Finally to profit from latest improvements, draft elements returns directly a TimeInterval type instead of the list of slices. Methods with 'Slice' have been renamed to 'Interval' for consistency reasons.
  • Add dynamic types into Attributes API. Dynamic types store values with a time interval and query can be customized with estimators. All dynamic types inherit from DynamicType
  • Graph API event management improvements. The GraphEvent has now precise events, including ADD_NODES, REMOVE_NODES, ADD_EDGES, REMOVE_EDGES and VISIBLE_VIEW. A new GraphEventData interface has been created to retrieve elements related to the events.
  • Export API refactoring, inspired from ImportAPI. Create an ExporterBuilder interface for exporter creation and different exporters: GraphExporter, VectorExporter, ByteExporter and CharacterExporter that covers common cases. The way exporters write data has been rationalized by using either java.io.Writer (text) or java.io.OutputStream (byte). The ExportController has been improved to support all use-cases, including file, writer and stream export.
  • Add Spigot support to the ImportAPI and SPI. Like DatabaseImporter, the SpigotImporter interface is a new type of Importers. Modifications have also be made to the ImportController to support spigot import.
  • Refactoring and improvements in the Import API and SPI. The refactoring aim is to solve the singleton issue with importers and let users implement builders interface that create importers instance. Therefore an ImporterBuilder interface has been created and should be registered with the @ServiceProvider annotation. The various importers types have been simplified and leave more choice to the implementations about how the input is managed. XML and Text file importers has been merged in a FileImporter interface, working with the java.io.Reader. Utility static methods, for instance get Document from Reader can now be found in a new ImportUtils class. The ImportController has been simplified for File import and now accepts java.io.Reader also. The main improvement on these modules in the support of UI components for importers. The aim is to let importers define an ImporterUI implementation to manage settings of these importers.
  • Improvements in the GraphAPI identifiers management. The system is now storing String identifiers coming from users. New getters and setters methods have been created in Graph: Graph.setId(Node, String), Graph.setId(Edge, String), Graph.getNode(String), Graph.getEdge(String). The NodeData.setId() and EdgeData.setId() methods have been removed, compatibility can't be kept. Factory has also be changed to allow to create elements with String ID directly, as it's not possible anymore to do it from NodeData.
  • Changes in AttributesAPI with event management. The lookup system in AttributeTable has been replaced by a more traditional event management system, with new AttributeEvent and AttributeListener interfaces. The dispatch implementation is also now on a separate thread.
  • Changes in Import modules to separate core and user interfaces. The ImportController is now doing import task only and a new ImportControllerUI is displaying the user interface (Report Panel). The ImportControllerUI interface is located in the DesktopProject module and should be user to properly import file from Plugins. The ImportController methods could be used from the toolkit.
Personal tools