Bot releases are visible (Hide)
Follow-up release from 0.10.0
with bugfixes.
If you're looking for digital signatures for the release binaries, you can directly find them on Maven Central
Published by mbastian almost 2 years ago
ProjectController
now executes all methods synchronously, protected by an internal lock. The openProject()
, saveProject()
no longer return a Runnable
.ProjectListener
to receive events from ProjectController
.ProjectController.openNewWorkspace()
to simplify usage.WorkspaceMetaData
object in Workspace
to manage description.Controller
and Model
to facilitate workspace model creation. It can replace usage of WorkspaceListener
to handle model creation and maintenance.org.gephi.project.spi.ProjectPropertiesUI
as it had no clear purpose.ProjectController.startup()
method was removed as it wasn't used.ProjectInformation
. Relevant methods have been ported to Project
.WorkspaceInformation
. Relevant methods have been ported to Workspace
.WorkspaceProvider
. Relevant methods were ported to Project
.WorkspaceDuplicateProvider
SPI has been removed.LongTaskExecutor
now has execute
methods that also support Callable
in addition of Runnable
.PDFTarget
interface now gives access to the PDFBox objects as it has been migrated from iText to Apache PDFBox. All Renderer
implementation need to adapt the PDF rendering accordingly.setGlobalCanvasSize(boolean)
method was added to the PreviewController
to control whether the full or filtered (default) graph is used when calculating canvas size.ContainerLoader
now has a setMetadata()
method to provide graph metadata.@Meta-Ace made their first contribution in #1618
@totetmatt made their first contribution in #2518
@sukankanachakraborty made their first contribution in #2623 and #2061
@WaltonG made their first contribution in #1388
@pgdr made their first contribution in #1816
If you're looking for digital signatures for the release binaries, you can directly find them on Maven Central
Published by mbastian about 2 years ago
Follow-up release from 0.9.3
, 0.9.4
, 0.9.5
and 0.9.6
with bugfixes.
If you're looking for digital signatures for the release binaries, you can directly find them on Maven Central
Published by mbastian over 2 years ago
Follow-up release from 0.9.3
, 0.9.4
and 0.9.5
with bugfixes.
If you're looking for digital signatures for the release binaries, you can directly find them on Maven Central
Published by mbastian over 2 years ago
Follow-up release from 0.9.3
and 0.9.4
with bugfixes.
If you're looking for digital signatures for the release binaries, you can directly find them on Maven Central
Published by mbastian over 2 years ago
Follow-up release from 0.9.3
with bugfixes.
Published by mbastian over 2 years ago
getEdges(int type)
to Graph
to allow retrieval of only edges of a specific type.getEdgeTypeLabels(boolean)
to GraphModel
.TimeSet
and Element.getTimeBounds()
.Column.exists()
as new utility.GraphLock
to the API in Graph
to expose locking states.Table
a Collection
of Column
.Column.isDynamicAttribute()
.toSet()
in addition of toCollection()
to element iterables.Table.countColumns(Origin)
method.getElementIndex()
methods to GraphModel
when providing a Table
.isNodeTable()
and isEdgeTable()
methods to Table
.Partition
and Ranking
now always receive the Graph
as parameter for all methods that do need access to the underlying index to facilitate local scale support.getColumn()
to Ranking
so it aligns with Partition
.getNormalizedValue()
to Ranking
to more easily retrieve the normalised value.Partition
now has a static DEFAULT_COLOR
when the color is not found for a given value.Partition.setColors()
as it was prone to confusion.transformAll(Iterable<? extends Element>)
to Function
.isLocalScale()
into isRankingLocalScale()
and isPartitionLocalScale()
in AppearanceModel
.Function
getters in AppearanceModel
independent from Graph
as this should be handled automatically based on the local/global state.postProcess()
method has been added to the Renderer
SPI to allow customization once all items have been rendered.Published by eduramiba about 7 years ago
FileAware
interface in FileImporter
in ImporterAPI
. This allows file importers to receive the file to import in a setFile
method instead of the setReader
method being called. If your FileImporter
implements this interface, setFile
will be called, and setReader
will not be called.Published by mbastian over 8 years ago
setColors
method has been added to Partition
in AppearanceAPI
.SpigotImporter
and SpigotImporterBuilder
interfaces in ImportAPI
have been renamed to WizardImporter
and WizardImporterBuilder
. Methods have been accordingly renamed in ImportController
as well.FilterBuilder.getFilter()
and CategoryBuilder.getBuilders()
methods in FiltersAPI
now take a Workspace
as a parameter.Published by mbastian almost 9 years ago
Modularize application, extensible by plugins
Published by mbastian almost 9 years ago
Published by mbastian almost 9 years ago
Published by mbastian almost 9 years ago
Published by mbastian almost 9 years ago
Published by mbastian almost 9 years ago
Published by mbastian almost 9 years ago
Published by mbastian almost 9 years ago
Published by mbastian almost 9 years ago
After installing Gephi 0.8.2, open it and go to Tools - Plugins - Configuration. Then change the source URLs to:
Published by mbastian almost 9 years ago
The .gephi files created with Gephi 0.9.0 won't work on earlier versions as the format code has been redesigned. However, files from 0.8.2 and anterior can be opened by Gephi 0.9.0. Therefore, we advise not to overwrite your project files if you still plan to use earlier versions of Gephi.
edgedefault
not handled to spec (#147)DynamicAPI
have either been replaced by native GraphAPI
support or added to the TimelineAPI
, effectively removing DynamicAPI
from the codebase. The TimeFormat
can be set via setTimeFormat()
on GraphModel
. Estimators are now configurable per column and can directly be set from the Column
. Obtaining the minimum time bounds can now be obtained from the TimeIndex
directly from GraphModel
.createQuery()
method in FilterController
now takes a FilterBuilder
instead of a Filter
. It allows to track down builders down to the query level.ImportAPI
now supports importing multiple graphs at the time and supports graph slices through an additional parameter on ContainerLoader
. The setTimestamp()
and setInterval()
allows to define a point or period of existence for the entire graph. The ImportController
also allow multiple containers to be processed through a new process()
method. In parallel, ImporterUI
now takes multiple importers and so does the Processor
interface that now takes multiple containers.NodeFilter
and EdgeFilter
interfaces now inherit from a new ElementFilter
so it's easier to create filters that work at the element level.filter()
method in Operator
now takes an array of Subgraph
instead of Graph
. This gives access to operations such as union
or not
.ClusteringAPI
from codebase. It needs a complete rewrite.setTimeZone()
on ContainerLoader
in ImportAPI
.ContainerFactory
class in ImportAPI
and replace it with Container.Factory
. Also add the ability to configure the TimeRepresentation
in ContainerLoader
. Finally, add color parsing utility in ImportUtils
. It can be used to parse color names or codes.AttributeModel
parameter in the execute()
method of Statistics
interface in StatisticsAPI
has been removed as all features are now in GraphModel
.ChangeListener
in WorkspaceInformation
has been replaced with a PropertyChangeListener
.RankingAPI
and PartitionAPI
have been replaced by a new AppearanceAPI
, which supports both concepts. The SPI allows to create Transformer
services, which can support either ranking or partition transformations. Ranking
and Partition
instances are defined in the API and gives access to underlying data. The core concept in appearance are functions, which wrap the transformation entirely and can be accessed in AppearanceModel
.PreviewAPI
has been removed and replaced by regular Java2D. Therefore, the ProcessingTarget
is now the G2DTarget
. Also add a resize()
method to facilitate integration.EdgeWeightMergeStrategy
enum to control the way parallel edge weights are merged in ImportAPI
.WorkspacePersistenceProvider
with a new SPI interface: WorkspaceBytesPersistenceProvider
. The XML-based interface has being renamed into WorkspaceXMLPersistenceProvider
.setValueString()
method on ElementDraft
. This will automatically parse the value based on the declared type reducing parsing code on the importer side. If the type is already in the right type, use the setValue()
instead.ColumnDraft
interface which represents a to-be-created column and the method to manipulate them in ContainerLoader
. The NodeDraft
and EdgeDraft
classes now inherits from a new ElementDraft
, centralizing a lot of the code. The EdgeDraftGetter
and NodeDraftGetter
have been removed and their methods moved directly to the node/edge draft. New elements are now created using the ElementDraft.Factory
, which can be obtained with the factory()
method on ContainerLoader
. Previously the ContainerUnloader
returned an AttributeModel
. This has been replaced with iterables over column drafts. The EdgeDefault
enum becomes EdgeDiretionDefault
and represents a graph-level configuration. The EdgeDefault
is now edge-level configuration and can be set by setEdgeDirection()
on EdgeDraft
. Finally, convenient setColor()
methods have been added to ElementDraft
.GraphAPI
and add GraphStore as dependency. The new API is entirely defined in the GraphStore project and Gephi makes it available through the GraphAPI
. The AttributesAPI
functionalities have been consolidated into the new graph API and therefore has been removed. There is too many API changes to be listed all but notable ones are the following.
GraphModel
, and there's no more AttributeModel
.AttributeColumn
is renamed into Column
, the AttributeTable
is renamed into Table
, AttributeOrigin
is renamed into Origin
and the AttributeType
has been replaced by the direct usage of Class
objects. Moreover, the AttributeUtils
is now entirely static (i.e. no more needed to obtain an instance) and has multiple important additions such as full parse support.GraphModel.addEdgeType()
.getAttribute()
methods. All properties such as color or position are also accessible directly on the Node/Edge interfaces.Configuration
(must be done at initialization). The way elements' existence overtime has been greatly simplified with the addition of timestamp/interval management methods on Element
, which both Node
and Edge
extends. See for instance addTimestamp()
, addInterval()
, getTimestamps()
or getIntervals()
. Similarly, each attribute getter or setter in Element
is available with timestamps and intervals parameters so attribute values over time can be configured. Behind the scenes, the dynamic types used are defined in org.gephi.graph.api.types
.Subgraph
interface that extends Graph
and is available from GraphModel.getGraph(GraphView)
. This subgraph interface has additional features such as union()
or intersection()
.GraphListener
has been entirely replaced with a pull-based system of observers. The system no longer sends events at each update but listeners can create observers, which periodically check if something has changed. There's multiple types of observers: GraphObserver
for topology changes, TableObserver
for new/removed columns and ColumnObserver
for attribute value changes. These observers can obtain diff objects such as GraphDiff
or TableDiff
to exactly obtain what has changed.