gephi.team team mailing list archive
-
gephi.team team
-
Mailing list archive
-
Message #02206
[Merge] lp:~megaterik/gephi/exporter-ucinet-dl into lp:gephi
Sébastien Heymann has proposed merging lp:~megaterik/gephi/exporter-ucinet-dl into lp:gephi.
Requested reviews:
Sébastien Heymann (sebastien.heymann)
For more details, see:
https://code.launchpad.net/~megaterik/gephi/exporter-ucinet-dl/+merge/69236
Add DL exporter.
--
https://code.launchpad.net/~megaterik/gephi/exporter-ucinet-dl/+merge/69236
Your team Gephi Team is subscribed to branch lp:gephi.
=== added directory 'Exporter DL'
=== added file 'Exporter DL/build.xml'
--- Exporter DL/build.xml 1970-01-01 00:00:00 +0000
+++ Exporter DL/build.xml 2011-07-26 10:13:29 +0000
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- You may freely edit this file. See harness/README in the NetBeans platform -->
+<!-- for some information on what you could do (e.g. targets to override). -->
+<!-- If you delete this file and reopen the project it will be recreated. -->
+<project name="org.gephi.io.exporter.ucinet" default="netbeans" basedir=".">
+ <description>Builds, tests, and runs the project org.gephi.io.exporter.ucinet.</description>
+ <import file="nbproject/build-impl.xml"/>
+</project>
=== added file 'Exporter DL/manifest.mf'
--- Exporter DL/manifest.mf 1970-01-01 00:00:00 +0000
+++ Exporter DL/manifest.mf 2011-07-26 10:13:29 +0000
@@ -0,0 +1,5 @@
+Manifest-Version: 1.0
+OpenIDE-Module: org.gephi.io.exporter.ucinet
+OpenIDE-Module-Localizing-Bundle: org/gephi/io/exporter/ucinet/Bundle.properties
+OpenIDE-Module-Specification-Version: 1.0
+
=== added directory 'Exporter DL/nbproject'
=== added file 'Exporter DL/nbproject/build-impl.xml'
--- Exporter DL/nbproject/build-impl.xml 1970-01-01 00:00:00 +0000
+++ Exporter DL/nbproject/build-impl.xml 2011-07-26 10:13:29 +0000
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+*** GENERATED FROM project.xml - DO NOT EDIT ***
+*** EDIT ../build.xml INSTEAD ***
+-->
+<project name="org.gephi.io.exporter.ucinet-impl" basedir="..">
+ <fail message="Please build using Ant 1.7.1 or higher.">
+ <condition>
+ <not>
+ <antversion atleast="1.7.1"/>
+ </not>
+ </condition>
+ </fail>
+ <property file="nbproject/private/suite-private.properties"/>
+ <property file="nbproject/suite.properties"/>
+ <fail unless="suite.dir">You must set 'suite.dir' to point to your containing module suite</fail>
+ <property file="${suite.dir}/nbproject/private/platform-private.properties"/>
+ <property file="${suite.dir}/nbproject/platform.properties"/>
+ <macrodef name="property" uri="http://www.netbeans.org/ns/nb-module-project/2">
+ <attribute name="name"/>
+ <attribute name="value"/>
+ <sequential>
+ <property name="@{name}" value="${@{value}}"/>
+ </sequential>
+ </macrodef>
+ <macrodef name="evalprops" uri="http://www.netbeans.org/ns/nb-module-project/2">
+ <attribute name="property"/>
+ <attribute name="value"/>
+ <sequential>
+ <property name="@{property}" value="@{value}"/>
+ </sequential>
+ </macrodef>
+ <property file="${user.properties.file}"/>
+ <nbmproject2:property name="harness.dir" value="nbplatform.${nbplatform.active}.harness.dir" xmlns:nbmproject2="http://www.netbeans.org/ns/nb-module-project/2"/>
+ <nbmproject2:property name="nbplatform.active.dir" value="nbplatform.${nbplatform.active}.netbeans.dest.dir" xmlns:nbmproject2="http://www.netbeans.org/ns/nb-module-project/2"/>
+ <nbmproject2:evalprops property="cluster.path.evaluated" value="${cluster.path}" xmlns:nbmproject2="http://www.netbeans.org/ns/nb-module-project/2"/>
+ <fail message="Path to 'platform' cluster missing in $${cluster.path} property or using corrupt Netbeans Platform (missing harness).">
+ <condition>
+ <not>
+ <contains string="${cluster.path.evaluated}" substring="platform"/>
+ </not>
+ </condition>
+ </fail>
+ <import file="${harness.dir}/build.xml"/>
+</project>
=== added file 'Exporter DL/nbproject/genfiles.properties'
--- Exporter DL/nbproject/genfiles.properties 1970-01-01 00:00:00 +0000
+++ Exporter DL/nbproject/genfiles.properties 2011-07-26 10:13:29 +0000
@@ -0,0 +1,8 @@
+build.xml.data.CRC32=aa6ecbf1
+build.xml.script.CRC32=c056b7ef
+build.xml.stylesheet.CRC32=a56c6a5b@1.45.1
+# This file is used by a NetBeans-based IDE to track changes in generated files such as build-impl.xml.
+# Do not edit this file. You may delete it but then the IDE will never regenerate such files for you.
+nbproject/build-impl.xml.data.CRC32=aa6ecbf1
+nbproject/build-impl.xml.script.CRC32=0f6e55bd
+nbproject/build-impl.xml.stylesheet.CRC32=238281d1@1.45.1
=== added file 'Exporter DL/nbproject/project.properties'
--- Exporter DL/nbproject/project.properties 1970-01-01 00:00:00 +0000
+++ Exporter DL/nbproject/project.properties 2011-07-26 10:13:29 +0000
@@ -0,0 +1,2 @@
+javac.source=1.6
+javac.compilerargs=-Xlint -Xlint:-serial
=== added file 'Exporter DL/nbproject/project.xml'
--- Exporter DL/nbproject/project.xml 1970-01-01 00:00:00 +0000
+++ Exporter DL/nbproject/project.xml 2011-07-26 10:13:29 +0000
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://www.netbeans.org/ns/project/1">
+ <type>org.netbeans.modules.apisupport.project</type>
+ <configuration>
+ <data xmlns="http://www.netbeans.org/ns/nb-module-project/3">
+ <code-name-base>org.gephi.io.exporter.ucinet</code-name-base>
+ <suite-component/>
+ <module-dependencies>
+ <dependency>
+ <code-name-base>org.gephi.data.attributes.api</code-name-base>
+ <build-prerequisite/>
+ <compile-dependency/>
+ <run-dependency>
+ <specification-version>0.8.0.1</specification-version>
+ </run-dependency>
+ </dependency>
+ <dependency>
+ <code-name-base>org.gephi.graph.api</code-name-base>
+ <build-prerequisite/>
+ <compile-dependency/>
+ <run-dependency>
+ <specification-version>0.8.0.1</specification-version>
+ </run-dependency>
+ </dependency>
+ <dependency>
+ <code-name-base>org.gephi.io.exporter.api</code-name-base>
+ <build-prerequisite/>
+ <compile-dependency/>
+ <run-dependency>
+ <specification-version>0.8</specification-version>
+ </run-dependency>
+ </dependency>
+ <dependency>
+ <code-name-base>org.gephi.project.api</code-name-base>
+ <build-prerequisite/>
+ <compile-dependency/>
+ <run-dependency>
+ <specification-version>0.8</specification-version>
+ </run-dependency>
+ </dependency>
+ <dependency>
+ <code-name-base>org.gephi.utils.longtask</code-name-base>
+ <build-prerequisite/>
+ <compile-dependency/>
+ <run-dependency>
+ <specification-version>0.8</specification-version>
+ </run-dependency>
+ </dependency>
+ <dependency>
+ <code-name-base>org.jdesktop.layout</code-name-base>
+ <build-prerequisite/>
+ <compile-dependency/>
+ <run-dependency>
+ <release-version>1</release-version>
+ <specification-version>1.16.1</specification-version>
+ </run-dependency>
+ </dependency>
+ <dependency>
+ <code-name-base>org.openide.util.lookup</code-name-base>
+ <build-prerequisite/>
+ <compile-dependency/>
+ <run-dependency>
+ <specification-version>8.6.1</specification-version>
+ </run-dependency>
+ </dependency>
+ </module-dependencies>
+ <public-packages/>
+ </data>
+ </configuration>
+</project>
=== added file 'Exporter DL/nbproject/suite.properties'
--- Exporter DL/nbproject/suite.properties 1970-01-01 00:00:00 +0000
+++ Exporter DL/nbproject/suite.properties 2011-07-26 10:13:29 +0000
@@ -0,0 +1,1 @@
+suite.dir=${basedir}/..
=== added directory 'Exporter DL/src'
=== added directory 'Exporter DL/src/org'
=== added directory 'Exporter DL/src/org/gephi'
=== added directory 'Exporter DL/src/org/gephi/io'
=== added directory 'Exporter DL/src/org/gephi/io/exporter'
=== added directory 'Exporter DL/src/org/gephi/io/exporter/ucinet'
=== added file 'Exporter DL/src/org/gephi/io/exporter/ucinet/Bundle.properties'
--- Exporter DL/src/org/gephi/io/exporter/ucinet/Bundle.properties 1970-01-01 00:00:00 +0000
+++ Exporter DL/src/org/gephi/io/exporter/ucinet/Bundle.properties 2011-07-26 10:13:29 +0000
@@ -0,0 +1,1 @@
+OpenIDE-Module-Name=Exporter UCINET DL
=== added file 'Exporter DL/src/org/gephi/io/exporter/ucinet/ExporterBuilderDL.java'
--- Exporter DL/src/org/gephi/io/exporter/ucinet/ExporterBuilderDL.java 1970-01-01 00:00:00 +0000
+++ Exporter DL/src/org/gephi/io/exporter/ucinet/ExporterBuilderDL.java 2011-07-26 10:13:29 +0000
@@ -0,0 +1,27 @@
+package org.gephi.io.exporter.ucinet;
+
+import org.gephi.io.exporter.api.FileType;
+import org.gephi.io.exporter.spi.GraphExporter;
+import org.gephi.io.exporter.spi.GraphFileExporterBuilder;
+import org.openide.util.lookup.ServiceProvider;
+
+@ServiceProvider(service = GraphFileExporterBuilder.class)
+public class ExporterBuilderDL implements GraphFileExporterBuilder
+{
+
+ @Override
+ public GraphExporter buildExporter() {
+ return new ExporterDL();
+ }
+
+ @Override
+ public FileType[] getFileTypes() {
+ return new FileType[]{new FileType(".dl", "dl files(UCINET)")};
+ }
+
+ @Override
+ public String getName() {
+ return "dl";
+ }
+
+}
=== added file 'Exporter DL/src/org/gephi/io/exporter/ucinet/ExporterDL.java'
--- Exporter DL/src/org/gephi/io/exporter/ucinet/ExporterDL.java 1970-01-01 00:00:00 +0000
+++ Exporter DL/src/org/gephi/io/exporter/ucinet/ExporterDL.java 2011-07-26 10:13:29 +0000
@@ -0,0 +1,242 @@
+package org.gephi.io.exporter.ucinet;
+
+import java.io.IOException;
+import java.io.Writer;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+import org.gephi.data.attributes.api.AttributeModel;
+import org.gephi.graph.api.DirectedGraph;
+import org.gephi.graph.api.Edge;
+import org.gephi.graph.api.EdgeIterable;
+import org.gephi.graph.api.EdgeIterator;
+import org.gephi.graph.api.GraphModel;
+import org.gephi.graph.api.HierarchicalGraph;
+import org.gephi.graph.api.NodeIterable;
+import org.gephi.graph.api.NodeIterator;
+import org.gephi.io.exporter.spi.CharacterExporter;
+import org.gephi.io.exporter.spi.GraphExporter;
+import org.gephi.project.api.Workspace;
+import org.gephi.graph.api.Node;
+import org.gephi.utils.longtask.spi.LongTask;
+import org.gephi.utils.progress.ProgressTicket;
+
+public class ExporterDL implements GraphExporter, CharacterExporter, LongTask {
+
+ private boolean exportVisible = false;
+ private Workspace workspace;
+ private Writer writer;
+ private GraphModel graphModel;
+ private AttributeModel attributeModel;
+ private boolean cancel = false;
+ ProgressTicket progressTicket;
+ private boolean useMatrixFormat = false;
+ private boolean useListFormat = true;
+ private boolean makeSymmetricMatrix = false;
+
+ public boolean isMakeSymmetricMatrix() {
+ return makeSymmetricMatrix;
+ }
+
+ public void setMakeSymmetricMatrix(boolean makeSymmetricMatrix) {
+ this.makeSymmetricMatrix = makeSymmetricMatrix;
+ }
+
+ public boolean isUseListFormat() {
+ return useListFormat;
+ }
+
+ public void setUseListFormat(boolean useListFormat) {
+ this.useListFormat = useListFormat;
+ }
+
+ public boolean isUseMatrixFormat() {
+ return useMatrixFormat;
+ }
+
+ public void setUseMatrixFormat(boolean useMatrixFormat) {
+ this.useMatrixFormat = useMatrixFormat;
+ }
+
+ @Override
+ public void setExportVisible(boolean exportVisible) {
+ this.exportVisible = exportVisible;
+ }
+
+ @Override
+ public boolean isExportVisible() {
+ return exportVisible;
+ }
+
+ @Override
+ public boolean execute() {
+ int max = 0;
+ progressTicket.start();
+ attributeModel = workspace.getLookup().lookup(AttributeModel.class);
+ graphModel = workspace.getLookup().lookup(GraphModel.class);
+ DirectedGraph graph = null;
+ if (exportVisible) {
+ graph = graphModel.getDirectedGraphVisible();
+ } else {
+ graph = graphModel.getDirectedGraph();
+ }
+ graph.readLock();
+
+ NodeIterable nodeIterable = graph.getNodes();
+
+ //use labels only if every node has label
+ boolean useLabels = true;
+ while (nodeIterable.iterator().hasNext()) {
+ if (cancel) {
+ break;
+ }
+ useLabels &= (nodeIterable.iterator().next().getNodeData().getLabel() != null);
+ }
+
+ if (!cancel) {
+ try {
+ if (useListFormat) {
+ saveAsEdgeList1(useLabels, graph);
+ } else {
+ saveAsFullMatrix(useLabels, graph);
+ }
+ } catch (IOException ex) {
+ Logger.getLogger(ExporterDL.class.getName()).log(Level.SEVERE, null, ex);
+ }
+ }
+ graph.readUnlock();
+ progressTicket.finish();
+ return true;
+ }
+
+ @Override
+ public void setWorkspace(Workspace workspace) {
+ this.workspace = workspace;
+ }
+
+ @Override
+ public Workspace getWorkspace() {
+ return workspace;
+ }
+
+ @Override
+ public void setWriter(Writer writer) {
+ this.writer = writer;
+ }
+
+ private void saveAsEdgeList1(boolean useLabels, DirectedGraph graph) throws IOException {
+ writer.write("dl\n");
+ writer.write("format = edgelist1\n");
+ writer.write("n = " + graph.getNodeCount() + "\n");
+ EdgeIterable edgeIterator = graph.getEdges();
+ writer.write("labels embedded:\n");
+ writer.write("data:\n");
+ while (edgeIterator.iterator().hasNext()) {
+ if (cancel)
+ break;
+ Edge edge = edgeIterator.iterator().next();
+ if (useLabels) {
+ writer.write(edge.getSource().getNodeData().getLabel() + " "
+ + edge.getTarget().getNodeData().getLabel() + " " + edge.getWeight() + "\n");
+ } else {
+ writer.write(edge.getSource().getNodeData().getId() + " "
+ + edge.getTarget().getNodeData().getId() + " " + edge.getWeight() + "\n");
+ }
+ }
+ }
+
+ private void saveAsFullMatrix(boolean useLabels, DirectedGraph graph) throws IOException {
+ writer.write("dl\n");
+ writer.write("format = fullmatrix\n");
+ writer.write("n = " + graph.getNodeCount() + "\n");
+ int maxNumber = 0;
+ NodeIterable nodeIterator = graph.getNodes();
+ while (nodeIterator.iterator().hasNext()) {
+ if (cancel)
+ break;
+ maxNumber = Math.max(maxNumber, nodeIterator.iterator().next().getId());
+ }
+
+ boolean[] isNodeHere = new boolean[maxNumber + 1];
+ nodeIterator = graph.getNodes();
+ while (nodeIterator.iterator().hasNext()) {
+ if (cancel)
+ break;
+ isNodeHere[nodeIterator.iterator().next().getId()] = true;
+ }
+
+ int[] fullNumberOfNode = new int[graph.getNodeCount()];
+ int c = 0;
+ for (int i = 0; i < isNodeHere.length; i++) {
+ if (cancel)
+ break;
+ if (isNodeHere[i]) {
+ fullNumberOfNode[c++] = i;
+ }
+ }
+ int maxLengthOfEdgeWeight = 0;
+ if (makeSymmetricMatrix) {
+ for (int i = 0; i < graph.getNodeCount(); i++) {
+ if (cancel)
+ break;
+ for (int j = 0; j < graph.getNodeCount(); j++) {
+ if (cancel)
+ break;
+ if (graph.getEdge(graph.getNode(fullNumberOfNode[i]), graph.getNode(fullNumberOfNode[j])) != null) {
+ maxLengthOfEdgeWeight = Math.max(Float.toString(graph.getEdge(graph.getNode(fullNumberOfNode[i]), graph.getNode(fullNumberOfNode[j])).getWeight()).length(), maxLengthOfEdgeWeight);
+ }
+ }
+ }
+ }
+
+ writer.write("labels:\n");
+ for (int i = 0; i < graph.getNodeCount(); i++) {
+ if (cancel)
+ break;
+ if (useLabels) {
+ writer.write(graph.getNode(fullNumberOfNode[i]).getNodeData().getLabel());
+ } else {
+ writer.write(graph.getNode(fullNumberOfNode[i]).getNodeData().getId());
+ }
+ if (i != graph.getNodeCount() - 1) {
+ writer.write(",");
+ }
+ }
+ writer.write("\n");
+ writer.write("data:\n");
+ for (int i = 0; i < graph.getNodeCount(); i++) {
+ if (cancel)
+ break;
+ for (int j = 0; j < graph.getNodeCount(); j++) {
+ if (cancel)
+ break;
+ if (graph.getEdge(graph.getNode(fullNumberOfNode[i]), graph.getNode(fullNumberOfNode[j])) == null) {
+ writer.write("0 ");
+ if (makeSymmetricMatrix) {
+ for (int repeatSpace = 2; repeatSpace < maxLengthOfEdgeWeight + 1; repeatSpace++) {
+ writer.write(" ");
+ }
+ }
+ } else {
+ writer.write(Float.toString(graph.getEdge(graph.getNode(fullNumberOfNode[i]), graph.getNode(fullNumberOfNode[j])).getWeight()) + " ");
+ if (makeSymmetricMatrix) {
+ for (int repeatSpace = Float.toString(graph.getEdge(graph.getNode(fullNumberOfNode[i]), graph.getNode(fullNumberOfNode[j])).getWeight()).length() + 1; repeatSpace < maxLengthOfEdgeWeight + 1; repeatSpace++) {
+ writer.write(" ");
+ }
+ }
+ }
+ }
+ writer.write("\n");
+ }
+ }
+
+ @Override
+ public boolean cancel() {
+ this.cancel = true;
+ return true;
+ }
+
+ @Override
+ public void setProgressTicket(ProgressTicket progressTicket) {
+ this.progressTicket = progressTicket;
+ }
+}
=== added file 'Exporter DL/src/org/gephi/io/exporter/ucinet/UIExporterDL.java'
--- Exporter DL/src/org/gephi/io/exporter/ucinet/UIExporterDL.java 1970-01-01 00:00:00 +0000
+++ Exporter DL/src/org/gephi/io/exporter/ucinet/UIExporterDL.java 2011-07-26 10:13:29 +0000
@@ -0,0 +1,68 @@
+package org.gephi.io.exporter.ucinet;
+
+import javax.swing.JPanel;
+import org.gephi.io.exporter.spi.Exporter;
+import org.gephi.io.exporter.spi.ExporterUI;
+import org.openide.util.lookup.ServiceProvider;
+
+@ServiceProvider(service = ExporterUI.class)
+public class UIExporterDL implements ExporterUI {
+
+ private UIExporterDLPanel panel;
+ private ExporterDL exporter;
+ private ExporterDLSettings settings = new ExporterDLSettings();
+
+ @Override
+ public JPanel getPanel() {
+ panel = new UIExporterDLPanel();
+ return panel;
+ }
+
+ @Override
+ public void setup(Exporter exporter) {
+ this.exporter = (ExporterDL) exporter;
+ settings.load(this.exporter);
+ panel.setup(this.exporter);
+ }
+
+ @Override
+ public void unsetup(boolean update) {
+ if (update) {
+ panel.unsetup(exporter);
+ settings.save(exporter);
+ }
+
+ panel = null;
+ exporter = null;
+ }
+
+ @Override
+ public boolean isUIForExporter(Exporter exporter) {
+ return exporter instanceof ExporterDL;
+ }
+
+ @Override
+ public String getDisplayName() {
+ return "Exporter DL";
+ }
+
+private static class ExporterDLSettings
+{
+ private boolean useListFormat = true;
+ private boolean useMatrixFormat = false;
+ private boolean makeSymmetricMatrix = false;
+ private void load(ExporterDL exporterDL)
+ {
+ exporterDL.setUseListFormat(useListFormat);
+ exporterDL.setUseMatrixFormat(useMatrixFormat);
+ exporterDL.setMakeSymmetricMatrix(makeSymmetricMatrix);
+ }
+
+ private void save(ExporterDL exporterDL)
+ {
+ useListFormat = exporterDL.isUseListFormat();
+ useMatrixFormat = exporterDL.isUseMatrixFormat();
+ makeSymmetricMatrix = exporterDL.isMakeSymmetricMatrix();
+ }
+}
+}
\ No newline at end of file
=== added file 'Exporter DL/src/org/gephi/io/exporter/ucinet/UIExporterDLPanel.form'
--- Exporter DL/src/org/gephi/io/exporter/ucinet/UIExporterDLPanel.form 1970-01-01 00:00:00 +0000
+++ Exporter DL/src/org/gephi/io/exporter/ucinet/UIExporterDLPanel.form 2011-07-26 10:13:29 +0000
@@ -0,0 +1,83 @@
+<?xml version="1.1" encoding="UTF-8" ?>
+
+<Form version="1.2" maxVersion="1.2" type="org.netbeans.modules.form.forminfo.JPanelFormInfo">
+ <NonVisualComponents>
+ <Component class="javax.swing.JLabel" name="jLabel1">
+ <Properties>
+ <Property name="text" type="java.lang.String" value="jLabel1"/>
+ </Properties>
+ </Component>
+ <Component class="javax.swing.ButtonGroup" name="buttonGroup1">
+ </Component>
+ <Component class="javax.swing.ButtonGroup" name="buttonGroup2">
+ </Component>
+ </NonVisualComponents>
+ <AuxValues>
+ <AuxValue name="FormSettings_autoResourcing" type="java.lang.Integer" value="0"/>
+ <AuxValue name="FormSettings_autoSetComponentName" type="java.lang.Boolean" value="false"/>
+ <AuxValue name="FormSettings_generateFQN" type="java.lang.Boolean" value="true"/>
+ <AuxValue name="FormSettings_generateMnemonicsCode" type="java.lang.Boolean" value="false"/>
+ <AuxValue name="FormSettings_i18nAutoMode" type="java.lang.Boolean" value="false"/>
+ <AuxValue name="FormSettings_layoutCodeTarget" type="java.lang.Integer" value="2"/>
+ <AuxValue name="FormSettings_listenerGenerationStyle" type="java.lang.Integer" value="0"/>
+ <AuxValue name="FormSettings_variablesLocal" type="java.lang.Boolean" value="false"/>
+ <AuxValue name="FormSettings_variablesModifier" type="java.lang.Integer" value="2"/>
+ </AuxValues>
+
+ <Layout>
+ <DimensionLayout dim="0">
+ <Group type="103" groupAlignment="0" attributes="0">
+ <Group type="102" alignment="0" attributes="0">
+ <EmptySpace max="-2" attributes="0"/>
+ <Component id="listRadioButton" min="-2" pref="86" max="-2" attributes="0"/>
+ <EmptySpace max="-2" attributes="0"/>
+ <Group type="103" groupAlignment="0" attributes="0">
+ <Component id="symmetricCheckBox" alignment="0" min="-2" max="-2" attributes="0"/>
+ <Component id="matrixRadioButton" alignment="0" min="-2" max="-2" attributes="0"/>
+ </Group>
+ <EmptySpace pref="99" max="32767" attributes="0"/>
+ </Group>
+ </Group>
+ </DimensionLayout>
+ <DimensionLayout dim="1">
+ <Group type="103" groupAlignment="0" attributes="0">
+ <Group type="102" alignment="0" attributes="0">
+ <EmptySpace min="-2" max="-2" attributes="0"/>
+ <Group type="103" groupAlignment="3" attributes="0">
+ <Component id="listRadioButton" alignment="3" min="-2" max="-2" attributes="0"/>
+ <Component id="matrixRadioButton" alignment="3" min="-2" max="-2" attributes="0"/>
+ </Group>
+ <EmptySpace max="-2" attributes="0"/>
+ <Component id="symmetricCheckBox" min="-2" max="-2" attributes="0"/>
+ <EmptySpace pref="12" max="32767" attributes="0"/>
+ </Group>
+ </Group>
+ </DimensionLayout>
+ </Layout>
+ <SubComponents>
+ <Component class="javax.swing.JRadioButton" name="matrixRadioButton">
+ <Properties>
+ <Property name="text" type="java.lang.String" value="Matrix"/>
+ </Properties>
+ <Events>
+ <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="matrixRadioButtonActionPerformed"/>
+ </Events>
+ </Component>
+ <Component class="javax.swing.JRadioButton" name="listRadioButton">
+ <Properties>
+ <Property name="text" type="java.lang.String" value="List"/>
+ </Properties>
+ <Events>
+ <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="listRadioButtonActionPerformed"/>
+ </Events>
+ </Component>
+ <Component class="javax.swing.JCheckBox" name="symmetricCheckBox">
+ <Properties>
+ <Property name="label" type="java.lang.String" value="Symmetric"/>
+ </Properties>
+ <AccessibilityProperties>
+ <Property name="AccessibleContext.accessibleName" type="java.lang.String" value="symmetricCheckBox"/>
+ </AccessibilityProperties>
+ </Component>
+ </SubComponents>
+</Form>
=== added file 'Exporter DL/src/org/gephi/io/exporter/ucinet/UIExporterDLPanel.java'
--- Exporter DL/src/org/gephi/io/exporter/ucinet/UIExporterDLPanel.java 1970-01-01 00:00:00 +0000
+++ Exporter DL/src/org/gephi/io/exporter/ucinet/UIExporterDLPanel.java 2011-07-26 10:13:29 +0000
@@ -0,0 +1,106 @@
+package org.gephi.io.exporter.ucinet;
+
+public class UIExporterDLPanel extends javax.swing.JPanel {
+
+
+ /** Creates new customizer UIExporterDLPanel */
+ public UIExporterDLPanel() {
+ initComponents();
+ }
+
+ void setup(ExporterDL exporter)
+ {
+ // normalizeCheckBox.setSelected(exporter.isNormalize());
+ matrixRadioButton.setSelected(exporter.isUseMatrixFormat());
+ listRadioButton.setSelected(exporter.isUseListFormat());
+ symmetricCheckBox.setSelected(exporter.isMakeSymmetricMatrix());
+ symmetricCheckBox.setEnabled(matrixRadioButton.isSelected());
+ }
+
+ void unsetup(ExporterDL exporter)
+ {
+ // exporter.setNormalize(normalizeCheckBox.isSelected());
+ exporter.setUseMatrixFormat(matrixRadioButton.isSelected());
+ exporter.setUseListFormat(listRadioButton.isSelected());
+ exporter.setMakeSymmetricMatrix(symmetricCheckBox.isSelected());
+ }
+ /** This method is called from within the constructor to
+ * initialize the form.
+ * WARNING: Do NOT modify this code. The content of this method is
+ * always regenerated by the FormEditor.
+ */
+ // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
+ private void initComponents() {
+
+ jLabel1 = new javax.swing.JLabel();
+ buttonGroup1 = new javax.swing.ButtonGroup();
+ buttonGroup2 = new javax.swing.ButtonGroup();
+ matrixRadioButton = new javax.swing.JRadioButton();
+ listRadioButton = new javax.swing.JRadioButton();
+ symmetricCheckBox = new javax.swing.JCheckBox();
+
+ jLabel1.setText("jLabel1");
+
+ matrixRadioButton.setText("Matrix");
+ matrixRadioButton.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ matrixRadioButtonActionPerformed(evt);
+ }
+ });
+
+ listRadioButton.setText("List");
+ listRadioButton.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ listRadioButtonActionPerformed(evt);
+ }
+ });
+
+ symmetricCheckBox.setLabel("Symmetric");
+
+ org.jdesktop.layout.GroupLayout layout = new org.jdesktop.layout.GroupLayout(this);
+ this.setLayout(layout);
+ layout.setHorizontalGroup(
+ layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
+ .add(layout.createSequentialGroup()
+ .addContainerGap()
+ .add(listRadioButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 86, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
+ .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
+ .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
+ .add(symmetricCheckBox)
+ .add(matrixRadioButton))
+ .addContainerGap(99, Short.MAX_VALUE))
+ );
+ layout.setVerticalGroup(
+ layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
+ .add(layout.createSequentialGroup()
+ .addContainerGap()
+ .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
+ .add(listRadioButton)
+ .add(matrixRadioButton))
+ .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
+ .add(symmetricCheckBox)
+ .addContainerGap(12, Short.MAX_VALUE))
+ );
+
+ symmetricCheckBox.getAccessibleContext().setAccessibleName("symmetricCheckBox");
+ }// </editor-fold>//GEN-END:initComponents
+
+ private void matrixRadioButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_matrixRadioButtonActionPerformed
+ listRadioButton.setSelected(!matrixRadioButton.isSelected());
+ symmetricCheckBox.setEnabled(matrixRadioButton.isSelected());
+ }//GEN-LAST:event_matrixRadioButtonActionPerformed
+
+ private void listRadioButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_listRadioButtonActionPerformed
+ matrixRadioButton.setSelected(!listRadioButton.isSelected());
+ symmetricCheckBox.setEnabled(matrixRadioButton.isSelected());
+ }//GEN-LAST:event_listRadioButtonActionPerformed
+//FIXME: delete invisible variables
+ // Variables declaration - do not modify//GEN-BEGIN:variables
+ private javax.swing.ButtonGroup buttonGroup1;
+ private javax.swing.ButtonGroup buttonGroup2;
+ private javax.swing.JLabel jLabel1;
+ private javax.swing.JRadioButton listRadioButton;
+ private javax.swing.JRadioButton matrixRadioButton;
+ private javax.swing.JCheckBox symmetricCheckBox;
+ // End of variables declaration//GEN-END:variables
+}
=== added directory 'Exporter DL/test'
=== added directory 'Exporter DL/test/unit'
=== added directory 'Exporter DL/test/unit/src'
=== modified file 'nbproject/project.properties'
--- nbproject/project.properties 2011-07-19 04:14:33 +0000
+++ nbproject/project.properties 2011-07-26 10:13:29 +0000
@@ -33,6 +33,7 @@
project.org.gephi.io.exporter.api=ExportAPI
project.org.gephi.io.exporter.plugin=ExportPlugin
project.org.gephi.io.exporter.preview=PreviewExport
+project.org.gephi.io.exporter.ucinet=Exporter DL
project.org.gephi.io.generator.api=GeneratorAPI
project.org.gephi.io.generator.plugin=GeneratorPlugin
project.org.gephi.io.importer.api=ImportAPI
@@ -200,7 +201,8 @@
${project.org.gephi.lib.javamail}:\
${project.org.gephi.lib.jcalendar}:\
${project.org.gephi.lib.commonscompress}:\
- ${project.org.gephi.ranking.plugin}
+ ${project.org.gephi.ranking.plugin}:\
+ ${project.org.gephi.io.exporter.ucinet}
project.org.gephi.branding.desktop=DesktopBranding
project.org.gephi.data.attributes=AttributesImpl
project.org.gephi.data.attributes.api=AttributesAPI
Follow ups