705 Commits

Autor SHA1 Mensagem Data
Eduardo Ramos 4eb53b9f6a Add observers to graph and tables for auto-refreshing tables.
Fix occasional bug when changing workspace in data laboratory (wrong graphstore columns were used).
Re factor some code.
2014-08-20 01:57:29 +02:00
Eduardo Ramos 7bec4105c0 Merge branch 'master' of github.com:gephi/gephi into datalab 2014-08-19 21:21:12 +02:00
Eduardo Ramos f8c032d38b Bump maven plugins versions
Use Netbeans platform 8 and hide new unnecessary menus
2014-08-03 02:16:13 +02:00
Eduardo Ramos d873229ed8 Merge pull request #920 from count0/master
Make the GML exporter's Creator tag syntax conformant
2014-08-03 00:53:44 +02:00
Eduardo Ramos 17798a0f81 Merge pull request #923 from chirayuk/patch-1
Fix "Plugin Quick Start" link in README.md
2014-08-03 00:51:26 +02:00
Chirayu Krishnappa 586e72d4fb Fix "Plugin Quick Start" link in README.md
Fix the markdown for the "Plugin Quick Start (5 minutes)" link.
2014-05-30 19:27:54 -07:00
Tiago de Paula Peixoto ec2916565f Make the GML exporter's Creator tag syntax conformant 2014-05-22 12:13:58 +02:00
Eduardo Ramos b5c0de406d Fix graphstore call for new table observer 2014-05-19 22:55:50 +02:00
Mathieu Bastian 5777cab4a8 Enable auto-apply in DesktopAppearance 2014-03-30 19:14:17 -07:00
Mathieu Bastian 8d05d3958e Refactor calls to createObserver 2014-03-30 16:15:11 -07:00
Mathieu Bastian 38e540d8b3 Update GraphStore dependency 2014-03-30 15:44:25 -07:00
Mathieu Bastian 2ce8a3378c Update graphstore dependency 2014-03-02 17:54:17 -08:00
Mathieu Bastian 23b47bfe12 Fix dmg creation path on Linux 2014-01-18 17:55:51 -08:00
Mathieu Bastian 4b93a004f6 Fix LayoutPlugin compile issue 2014-01-18 17:38:01 -08:00
Mathieu Bastian 5b36a9f4b6 Add Application symlink in DMG 2014-01-18 17:35:32 -08:00
Eduardo Ramos b6ac01fcf4 Merge branch 'master' into datalab 2014-01-13 21:17:59 +01:00
Eduardo Ramos b92f7dd857 Merge branch 'master' of github.com:gephi/gephi 2014-01-13 21:15:20 +01:00
Eduardo Ramos 52819685e9 Fix compilation dependency problem 2014-01-13 21:15:04 +01:00
Mathieu Bastian c2ee37971f Format Info.plist 2013-12-30 17:07:59 +01:00
Mathieu Bastian 96951871fd Add column observer in Appearance UI 2013-12-30 17:07:50 +01:00
Mathieu Bastian 1b99cc7fe2 Implement equals and hashCode on ranking and partition functions 2013-12-30 17:07:30 +01:00
Mathieu Bastian d873611a2b Set isRanking and isPartition as private methods 2013-12-30 17:06:59 +01:00
Eduardo Ramos 36d88adae9 Minor details for data laboratory 2013-12-30 00:08:15 +01:00
Eduardo Ramos 7998f14102 Merge branch 'master' of github.com:gephi/gephi into datalab
Remove fake id columns from data laboratory since now they are real columns.
2013-12-25 22:36:36 +01:00
Eduardo Ramos 2b8ebcbf18 Merge branch 'master' of github.com:gephi/gephi into datalab 2013-12-25 21:15:16 +01:00
Mathieu Bastian 7a2dcf9bbb Update to JOGL 2.1.3 2013-12-25 18:03:42 +01:00
Mathieu Bastian 046c8efcfb Add TestNG to gephi-parent 2013-12-23 17:25:09 +01:00
Mathieu Bastian 325f60dcab Merge and update to new API 2013-12-23 17:23:44 +01:00
Mathieu Bastian 5d7ce7249d Update ImportAPI to use TimeFormat from GraphAPI 2013-12-22 22:09:09 +01:00
Mathieu Bastian 535b3ebf99 Add Statistics modules and update implementations to use the new API 2013-12-22 22:08:42 +01:00
Eduardo Ramos 182b7da555 Working on adapting Data Laboratory to new GraphStore
Still TODO:
   Mainly Dynamics
   Listen to Graph events so tables can be updated
   Test Data Laboratory features
2013-10-31 00:19:07 +01:00
Eduardo Ramos a56db00d36 Update nbm maven plugin to 3.11.1
Hide IDE Tools and Web browser from Window Menu
2013-10-26 00:51:42 +02:00
Eduardo Ramos 440b0bdf7e Remove old JOGL native binaries 2013-10-26 00:14:35 +02:00
Eduardo Ramos f27bbaf7c7 Update fastutil dependency to 6.5.9 2013-10-26 00:14:03 +02:00
Eduardo Ramos d7f321a4bb Revert platform localization zip to 7.2 2013-10-25 23:14:21 +02:00
Eduardo Ramos 7409c4fdf6 Updated JOGL dependencies to latest 2.1.1 release, which seems to finally fix the loading native libraries from JAR files problems.
Updated Netbeans maven platform version to 7.4
2013-10-23 23:07:55 +02:00
Mathieu Bastian ca72bf6e58 Minor refactoring 2013-08-25 22:50:52 -07:00
Mathieu Bastian 16547aeb93 Add partition palette management and UI 2013-08-25 22:50:20 -07:00
Mathieu Bastian 761701b37e Try again using dependency patch 2013-08-19 07:57:43 -07:00
Mathieu Bastian 84d050fc48 Revert last commit 2013-08-18 18:07:10 -07:00
Mathieu Bastian d4bd6896b6 Workaround for MNBMODULE-215 2013-08-18 18:04:55 -07:00
Mathieu Bastian 076e9dde7f A few more version upgrade 2013-08-18 17:59:47 -07:00
Mathieu Bastian 3af6a89dcd Update a few Maven plugin versions 2013-08-18 17:52:13 -07:00
Mathieu Bastian 30a10531f6 Debug Appearerance and implement apply button 2013-08-18 16:58:56 -07:00
Mathieu Bastian 70d8a4b766 Ranking and interpolation work in progress 2013-08-18 16:31:04 -07:00
Mathieu Bastian 93e8d2f1cc Work on appearance ranking, add Ranking object 2013-08-18 16:30:10 -07:00
Mathieu Bastian d99e990ef2 Debug AppearanceUI events 2013-08-18 16:29:20 -07:00
Mathieu Bastian 0f392cfb57 Add appearance control toolbar 2013-08-18 16:28:46 -07:00
Mathieu Bastian 9a99053130 Allow setting control points on spline editor 2013-08-18 16:27:32 -07:00
Mathieu Bastian 4608208d8e Debugging in ImportAPI and ImportPlugin 2013-08-18 15:00:27 -07:00
Mathieu Bastian 4df863a221 Add funnel image in DesktopAppearance 2013-08-18 14:59:55 -07:00
Mathieu Bastian db61bb4ac0 Remove target folder in AppearancePluginUI 2013-08-18 14:59:37 -07:00
Mathieu Bastian 23cb8c875f Move SplineEditor to UIComponents 2013-08-18 14:56:45 -07:00
Mathieu Bastian 2b9df0f666 Debug edge functions 2013-07-29 08:03:56 -07:00
Mathieu Bastian 9ead548b8e Debug Appearance UI 2013-07-28 22:50:40 -07:00
Mathieu Bastian a516fac1c3 Fix attribute value import in GEXF 2013-07-28 19:29:25 -07:00
Mathieu Bastian 3ecaa139a6 Implement appearance center panel system for partition 2013-07-28 19:24:35 -07:00
Mathieu Bastian 8743d446d2 Implement category and transformer toolbar system 2013-07-23 08:05:46 -07:00
Mathieu Bastian 0299ef4031 Fix text refresh performance issue 2013-07-21 14:32:18 -07:00
Mathieu Bastian 77ec95b76d Update JOGL version 2013-07-21 14:32:08 -07:00
Mathieu Bastian 2d49376813 Remove Partition modules and replace them with work in progress on appearance modules 2013-07-21 14:31:22 -07:00
Mathieu Bastian 9b4ffe4ad3 Fix databridge edge array grow issue 2013-06-10 23:39:13 -07:00
Mathieu Bastian 1841a0dde6 Fix arrow display issue 2013-06-10 23:38:59 -07:00
Mathieu Bastian f79e56880d Using Newt canvas as default 2013-06-10 23:38:47 -07:00
Mathieu Bastian e343581ea4 Using latest JOGL dev version due to window positioning issue 2013-06-10 23:38:10 -07:00
Mathieu Bastian 36327abc0b Debug perspective controller 2013-06-08 15:31:32 -07:00
Mathieu Bastian 133d787f12 Visualization animator 2013-06-08 15:31:17 -07:00
Mathieu Bastian d419d857b4 Experiment NEWT renderer 2013-06-08 15:31:03 -07:00
Mathieu Bastian b247f7e310 Fix ZipFile compile issue with Java 1.6 2013-05-30 23:14:44 -07:00
Mathieu Bastian ef1695fe59 Fix node border issue 2013-05-30 18:40:01 -07:00
Mathieu Bastian 8a168364ff Add snapshots repo for GraphAPI to pull graph-store 2013-05-30 18:39:43 -07:00
Mathieu Bastian 8b3e6c75fd Disable snapshots for netbeans and thirdparty repositories 2013-05-30 18:38:39 -07:00
Mathieu Bastian f2d01585c7 Minor debug 2013-05-27 23:15:45 -07:00
Mathieu Bastian 795eb453ce Add Preview export modules back 2013-05-27 18:25:21 -07:00
Mathieu Bastian 1bc40b4dfc Rename Processing to G2D 2013-05-27 17:14:33 -07:00
Mathieu Bastian e4fb5b4fcf Remove ProcessingApplet 2013-05-27 17:02:57 -07:00
Mathieu Bastian 851507afeb Setup preview zoom buttons 2013-05-27 17:01:59 -07:00
Mathieu Bastian 6e1f812846 Preview sketch mouse events 2013-05-27 16:48:39 -07:00
Mathieu Bastian 4afd75b332 Add @Override annotation in DesktopPreview 2013-05-27 13:14:15 -07:00
Mathieu Bastian 9bef9d46d7 Enable ProcessingGraphics resize and repaint 2013-05-27 13:10:35 -07:00
Mathieu Bastian b4ade84641 Update to NB Platform 7.3 2013-05-27 11:16:24 -07:00
Mathieu Bastian 54b6662663 Add Export and Preview dependence in gephi-app 2013-05-27 11:15:54 -07:00
Mathieu Bastian c7f95f1bf9 Add Preview modules and removed Processing dependency 2013-05-27 11:15:33 -07:00
Mathieu Bastian 2b2721f795 Update ExportPlugin code to the new GraphAPI 2013-05-25 19:21:46 -07:00
Mathieu Bastian 509d6baf8f ReportPanel UI fixes 2013-05-25 19:21:16 -07:00
Mathieu Bastian 84e721aa6b Add @Override annotations in ExportAPI 2013-05-25 19:20:56 -07:00
Mathieu Bastian dd1ed43235 Remove hierarchy export checkboxes in ExportPluginUI 2013-05-25 19:20:28 -07:00
Mathieu Bastian 56b65b1d9f Debug in ImportContainerImpl 2013-05-25 19:18:55 -07:00
Mathieu Bastian 3955dfbf42 Add text column getters in VisualizationAPI 2013-05-25 19:18:04 -07:00
Mathieu Bastian c9e397ba43 Merge branch 'master' of github.com:gephi/gephi 2013-05-18 20:03:42 -07:00
Mathieu Bastian 27e9ae02ac Rename transformer builder 2013-05-18 20:03:21 -07:00
Mathieu Bastian 5c89726fc3 Debug ReportPanel graph type selection 2013-05-18 20:03:01 -07:00
Mathieu Bastian f217730682 Update Ranking modules to the new API and add to project 2013-05-18 20:02:31 -07:00
Mathieu Bastian 83452510e1 Merge pull request #773 from ZiyaoWei/master
Bug fix for Issue #320.
2013-05-18 19:11:47 -07:00
Mathieu Bastian 4ffa88d58c Append timestamp and dynamic attributes in processor 2013-05-18 12:59:04 -07:00
Mathieu Bastian 10aeb80029 Fix TGF importer with new API 2013-05-18 12:58:44 -07:00
Mathieu Bastian d1f6cd6b40 Add dynamic value getters in ElementDraft 2013-05-18 12:58:26 -07:00
Mathieu Bastian 297fe912af Add edgeExists in container loader 2013-05-18 12:58:02 -07:00
Mathieu Bastian af722fae5e Add dynamic attribute label in report panel 2013-05-18 12:57:25 -07:00
Mathieu Bastian 5086cce845 Merge branch 'master' of github.com:gephi/gephi 2013-05-18 12:35:30 -07:00
Sébastien Heymann c071086d9b Merge pull request #742 from rlfnb/master
added trivial graph format to the list of importers
2013-05-16 13:56:48 -07:00
Sébastien Heymann 68e7822ea5 Merge pull request #703 from andygarcia/master
Fix issue #699: Reset size defaults to 10.0, not 1.0
2013-05-16 13:55:45 -07:00
Sébastien Heymann 69ccc43101 Merge pull request #774 from annaalkh/master
Fix issue #680
2013-05-16 13:53:18 -07:00
Mathieu Bastian acbe4bcaf9 Set dynamic attribute values in ElementDraft 2013-05-15 07:57:45 -07:00
Mathieu Bastian 017f801f88 Add dynamic attribute support in ImportAPI 2013-05-14 23:45:56 -07:00
Mathieu Bastian f4888f5d46 Minor fix on ReportPanel 2013-05-14 23:45:23 -07:00
Mathieu Bastian 9852ec5bda Report panel UI fixes 2013-05-13 18:33:33 -07:00
Mathieu Bastian acb1ceba7f Remove self-loop in close container 2013-05-13 18:33:19 -07:00
Mathieu Bastian f61e469c9a Update Netbeans Maven repository URL to avoid cookie rejected issues 2013-05-13 18:31:11 -07:00
Mathieu Bastian 683c30ce39 Add more options in the import report panel 2013-05-12 22:35:22 -07:00
Mathieu Bastian b66ff8cae2 Fix typo update 2013-05-12 22:35:02 -07:00
Mathieu Bastian 9bb97e2454 Fix typo 2013-05-12 22:34:05 -07:00
Mathieu Bastian d9c9522e1e Merge branch 'master' of github.com:gephi/gephi 2013-05-12 12:06:20 -07:00
Mathieu Bastian db459ff9f9 Add bytes graph persistence provider using GraphStore's serialization 2013-05-12 10:48:44 -07:00
Mathieu Bastian 2aa35be755 Add support for bytes workspace persistence provider data 2013-05-12 10:48:19 -07:00
Mathieu Bastian 5b00186710 Separate project zip file into multiple entries, one for the project and one for each workspace. Improve error handling. 2013-05-11 20:51:53 -07:00
Mathieu Bastian 0ad61139c5 Minor reformatting 2013-05-11 17:05:04 -07:00
Mathieu Bastian 39a99e5856 Cleanup and minor fixes on Project API. Add localization for project and workspace prefixes, as well as auto increment counters. 2013-05-11 17:04:37 -07:00
Mathieu Bastian cbdce1c18f Add custom XMLChar class to avoid XML Sun dependency 2013-05-11 17:02:54 -07:00
Mathieu Bastian f28957b9b8 Update LayoutPlugin with new node methods 2013-05-11 14:11:32 -07:00
Mathieu Bastian 68d0488623 Minor tweak 2013-04-29 18:04:03 -07:00
Mathieu Bastian 9b5f8f0b58 Use float buffers for drawable matrices. Reduce memory consumption in myGluProject. 2013-04-29 18:03:20 -07:00
Mathieu Bastian c6af330b52 Fix non EDT execution issue in DesktopImport 2013-04-29 17:36:43 -07:00
annaalkh 07d67961b8 Fix issue #750 2013-04-24 23:26:05 +04:00
Mathieu Bastian ae6074f3af Data bridge clearing 2013-04-23 08:47:55 -07:00
Mathieu Bastian 5afef61125 Display node labels 2013-04-23 08:25:31 -07:00
Mathieu Bastian b5948fc750 Minor debugging 2013-04-23 08:25:10 -07:00
Mathieu Bastian e6f79529a9 Visualization implementation debug 2013-04-22 10:43:52 -07:00
Mathieu Bastian c9e0742720 Fix LayoutPlugin getStoreId 2013-04-22 10:43:20 -07:00
Mathieu Bastian b3d11ae86b Visualization debug 2013-04-20 23:48:46 -07:00
Mathieu Bastian 21bea2bea7 Fix node and edge color issues 2013-04-20 22:29:28 -07:00
Mathieu Bastian 46ee327fc6 Node radius fix 2013-04-20 16:09:06 -07:00
Mathieu Bastian 5eda676d97 Fix edge display 2013-04-20 16:08:29 -07:00
Mathieu Bastian 143635f90b Integrate arrows in edges models 2013-04-20 16:07:50 -07:00
Mathieu Bastian cc37a02844 Octree and node reposition debug 2013-04-18 08:30:28 -07:00
ZiyaoWei c30f743f85 Issue #320 Fix broken DOT parser: The original parser will ignore single node, which would make the parser confused when parsing the rest of the file. 2013-04-17 23:29:24 -04:00
Mathieu Bastian 8fb939bfed Minor fixes 2013-04-17 00:08:44 -07:00
Mathieu Bastian 14d32a80c2 Debugging in VisualizationImpl 2013-04-16 23:55:14 -07:00
Mathieu Bastian 8e350df215 Fix issue in default processor with mixed graphs 2013-04-16 23:54:58 -07:00
Mathieu Bastian 3d12ba9b88 Update some Tools to the new GraphAPI 2013-04-16 23:54:46 -07:00
Mathieu Bastian 3fa18e67d4 More @Override annotation 2013-04-16 23:54:26 -07:00
Mathieu Bastian bc05917012 Add @Override annotation across the board 2013-04-16 23:53:32 -07:00
Mathieu Bastian d2af0fbca1 Update the AlgorithmsPlugin to the new Graph API 2013-04-16 23:51:10 -07:00
Mathieu Bastian 431fc592f2 Include ToolsAPI in POM 2013-04-16 00:08:52 -07:00
Mathieu Bastian 9f5857a96f Migrate Visualization to JOGL2. 2013-04-16 00:08:39 -07:00
Mathieu Bastian 0f0da1be77 Minor debug with graph visible 2013-04-15 17:51:57 -07:00
Mathieu Bastian 1b4080c7af Temporarily disable some modules on POM 2013-04-15 17:39:01 -07:00
Mathieu Bastian e59b7ccf01 Refactor and simplify the Visualization module. Update to the new Graph API. 2013-04-15 17:37:58 -07:00
Mathieu Bastian 7b36dbfe02 Comment some DynamicAPI code and update UIUtils to new attributes API 2013-04-15 17:37:17 -07:00
Mathieu Bastian baec9199a9 Minor debugging 2013-04-15 17:36:33 -07:00
Mathieu Bastian 1c2f686d48 Add TimeFormat in ImportAPi 2013-04-15 17:36:07 -07:00
Mathieu Bastian 24098f8bdc Add Context refresh thread in DesktopContext 2013-04-15 17:35:40 -07:00
Mathieu Bastian 5398cd1dda Fix bug when launching without Timelime component 2013-04-15 08:40:39 -07:00
Mathieu Bastian 7a3e579f7a Comment out dynamic graph generation. 2013-04-15 08:40:07 -07:00
Mathieu Bastian be4c42e229 Add GraphController @ServiceProvider annotation 2013-04-15 08:39:45 -07:00
Mathieu Bastian 0e3facf787 Comment out text dimensions in LabelAdjust 2013-04-15 08:39:14 -07:00
Mathieu Bastian 865db80e51 Comment out the Dynamic support in Processor. 2013-04-15 08:37:25 -07:00
Mathieu Bastian 396a5f8666 Use the new TimeFormat from ImportAPI and replace usage of AttributeUtils by the new setValueString method to parse values. 2013-04-15 08:36:28 -07:00
Mathieu Bastian c34d0ea9c3 Add setValueString to parse attribute values automatically in ImportAPI. 2013-04-15 08:35:02 -07:00
Mathieu Bastian 9057c563e2 Remove old Attributes API from DataLaboratoryAPI 2013-04-15 08:34:14 -07:00
Mathieu Bastian 0c962cf783 Update DesktopImport to the new Graph API. Remove hierarchical graph support and enable crash reports on imports. 2013-04-15 08:33:34 -07:00
Mathieu Bastian 4104a2e7b8 Update DesktopContext to the new Graph API. Remove pie chart. 2013-04-15 08:32:12 -07:00
annaalkh f031ff6b63 Merge branch 'master' of git://github.com/gephi/gephi 2013-04-12 21:48:32 +04:00
Mathieu Bastian b9d67a895d Update ProcessorPlugin to the latest API 2013-04-09 23:03:52 -07:00
Mathieu Bastian 223da54ac5 Minor changes on ImportAPI 2013-04-09 23:03:35 -07:00
Mathieu Bastian 1fb3fd0726 Remove dynamic processor in ProcessorPlugin 2013-04-09 23:03:12 -07:00
Mathieu Bastian 310efb3522 POM dependencies fies 2013-04-09 23:02:47 -07:00
Mathieu Bastian 3a48a5c87e Update and refactor ImportAPI for new GraphAPI. Update file importers. 2013-04-06 18:12:00 -07:00
Mathieu Bastian 3ebffd4807 Update LayoutAPI and LayoutPlugin to new GraphAPI 2013-04-06 18:10:45 -07:00
Mathieu Bastian 5e7eb963aa Remove YifanHUMultilevel layout algorithm 2013-04-06 18:09:54 -07:00
Mathieu Bastian 5b70b184b1 Remove GraphAPI and DHNSGraph and add GraphStore dependency 2013-04-06 18:08:54 -07:00
Sébastien Heymann 240f4a5ccf fix bug #767 2013-04-02 21:41:29 +03:00
Mathieu Bastian 70c4f5fee2 Merge pull request #764 from bfontaine/master
Two links fixed in the README
2013-03-23 12:16:21 -07:00
Baptiste Fontaine e4ac375e15 Fixed Plugins Quick Start link. 2013-03-15 00:43:39 +01:00
Baptiste Fontaine ab62a6bede Correct Javadoc link. 2013-03-15 00:38:25 +01:00
Eduardo Ramos 1ab13abd05 Fix project files saving and loading when in toolkit. 2013-03-13 22:20:03 +01:00
annaalkh 09decb6804 Fix issue #680 2013-03-08 00:47:57 +04:00
Ralf Neeb 0fa6e99a3f added trivial graph format support 2013-01-29 21:44:08 +01:00
Eduardo Ramos dd10de286c Fix attribute delegate providers type mismatch mechanism. (Issue #707) 2013-01-20 21:02:23 +01:00
Mathieu Bastian 930a4d3364 Update Branding 2013-01-13 14:20:44 -08:00
Mathieu Bastian b4ed125b9f Update all versions to 0.9-SNAPSHOT 2013-01-13 14:10:13 -08:00
Mathieu Bastian 4ad80ff76e Merge branch 'master' of github.com:gephi/gephi 2013-01-09 08:34:18 -08:00
Mathieu Bastian ee3bff1ec9 Set DBDrivers dependencies as compile #720 2013-01-09 08:33:07 -08:00
Eduardo Ramos 80fcd3fd23 Merge branch 'master' of github.com:gephi/gephi 2013-01-04 23:28:54 +01:00
Eduardo Ramos abc058d404 Use gephi version name in windows default install folder to avoid overwriting old installed version. 2013-01-04 23:27:13 +01:00
Mathieu Bastian 24a797be13 Fix release-extra POM 2013-01-02 16:27:34 -08:00
Eduardo Ramos f946cb3289 Pulled latest translations from tranxifex. 2013-01-01 22:20:57 +01:00
Eduardo Ramos 1b0ca6dc39 Update translation resources 2012-12-31 02:09:24 +01:00
Eduardo Ramos 97199a3e43 Replace icon for new netbeans-generated gephi64.exe launcher in release-windows profile. 2012-12-31 00:14:51 +01:00
Eduardo Ramos 635b6f4284 Fix in PreviewModelImpl 2012-12-30 23:01:50 +01:00
Mathieu Bastian 0bca238f9c Configure updates path for release profile 2012-12-29 12:19:18 +01:00
Mathieu Bastian c72846a35e Update maven plugin versions and avoid deploy twice for assembly artifacts 2012-12-29 12:02:47 +01:00
Mathieu Bastian 9194c27d62 Configure apidocs and updates path for release 2012-12-29 11:32:47 +01:00
Mathieu Bastian c6a2e7d31c POM repository url properties 2012-12-29 11:18:40 +01:00
Mathieu Bastian 85a4e3325d POM fix 2012-12-29 10:53:57 +01:00
Mathieu Bastian 810602a62d Assembly fix 2012-12-29 10:21:08 +01:00
Mathieu Bastian b8bd3bb214 Debug inherited 2012-12-28 17:42:29 +01:00
Mathieu Bastian 7669105933 Javadoc and sources POM tweaks 2012-12-28 17:27:46 +01:00
Mathieu Bastian 16611286ec Bump nbm plugin version 2012-12-28 15:45:21 +01:00
Mathieu Bastian 3f219e903c Avoid JAR in gephi-app 2012-12-28 15:45:05 +01:00
Mathieu Bastian 41062bd4ab Remove duplicated zip attach in application POM 2012-12-28 13:58:42 +01:00
Mathieu Bastian 62ad2c6eb5 Remove java.net repository as now included in nexus proxy 2012-12-28 12:14:36 +01:00
Mathieu Bastian ac91e04884 Separate javadoc aggregate and parent assembly to another profile 2012-12-28 11:31:19 +01:00
Mathieu Bastian 42b0f6f9b5 Pom fixes 2012-12-27 09:55:30 +01:00
Mathieu Bastian 92727e6469 Merge pull request #698 from shepdl/master
Fix #697: Exporting SVG file throws DomException due to invalid stroke-widths.
2012-12-26 00:14:37 -08:00
Mathieu Bastian 1758293a0c Formatting 2012-12-26 09:11:35 +01:00
Mathieu Bastian ecc7fe12dc Merge pull request #711 2012-12-26 09:07:59 +01:00
Mathieu Bastian 1eeb8b6a4f Signing and Maven requirements 2012-12-26 09:05:39 +01:00
Eduardo Ramos 542cfa4c7a Add ant target to release-windows profile that replaces Windows launcher icon with our own icon 2012-12-23 00:16:27 +01:00
Jacobien Carstens 26c437105d Fixed bug #176 Duplicating filter works now 2012-12-18 13:10:59 +11:00
Andy Garcia a37ff1aed0 Fix issues #699: Reset size tool and its dialog now default to 10.0 for node size, not 1.0. 2012-12-13 13:36:06 -05:00
shepdl 1e6b9849ac Fix issue #697: Exporting SVG File throws DomException due to invalid stroke-widths. 2012-12-11 09:43:25 -08:00
Eduardo Ramos 418f0a7fee Add license file for InnoSetup installer script 2012-12-10 23:39:05 +01:00
Mathieu Bastian a5136f4083 Remove xml-apis dependency which duplicate with default jdk 2012-12-10 08:55:59 -08:00
Eduardo Ramos ff65a9edaa Include preview mouse listeners support and bug fixes implemented in legend project. 2012-12-07 22:27:42 +01:00
Eduardo Ramos 3cef860299 Fix Issue #628 : Spreadsheet export is now able to export hidden columns in data laboratory and is not affected by localization. 2012-12-07 20:28:13 +01:00
Eduardo Ramos ab02babbd8 Allow custom date format in data laboratory create time interval column merge strategy 2012-12-07 18:56:08 +01:00
Eduardo Ramos 8f23ee564b Fix bug in ExporterGEXF 2012-12-07 18:03:53 +01:00
Eduardo Ramos 8e6e2ce55e Fix Issue #691 2012-12-07 18:02:42 +01:00
Mathieu Bastian c376f88ca8 Apply mavenization of Gephi project to trunk, please read http://wiki.gephi.org/index.php/Continuous_Integration for details. 2012-11-18 15:51:22 -08:00
Mathieu Bastian a5a4310644 Update README message 2012-11-18 11:55:35 -08:00
Mathieu Bastian 460ddd7407 Merge branch 'master' of github.com:gephi/gephi 2012-11-18 10:37:38 -08:00
Eduardo Ramos 1daa71b0d3 Fix Issue #616 - Link to nodes feature in data lab now directs the user to Add edge UI if only one node is selected. 2012-11-04 22:34:12 +01:00
Eduardo Ramos 77b973c1a9 Fix Issue #663 (Use toString() instead of String cast in Equal attribute filter) 2012-11-04 21:58:41 +01:00
Mathieu Bastian 2691a96bf6 Bump netbeans version 2012-11-02 23:24:51 -07:00
Mathieu Bastian 0df20c3d6e Merge branch 'master' of github.com:gephi/gephi-maven 2012-11-02 23:03:02 -07:00
Mathieu Bastian 893f599078 Codesign instructions in Mac OS X bundle 2012-11-02 23:02:55 -07:00
Eduardo Ramos 8e0cf5eb27 More fixes for correct dynamic index updates due to attribute events. 2012-11-01 19:41:51 +01:00
Eduardo Ramos d818ed3c43 Fix Issue #679 2012-11-01 03:04:01 +01:00
Eduardo Ramos c13ff9e39a Fix Issue #686 2012-11-01 01:53:35 +01:00
Eduardo Ramos ae2c66f737 Fix preferences for last commit. 2012-11-01 01:40:50 +01:00
Eduardo Ramos a5ac72e43d Implement Convert column to dynamic in data laboratory (Issue #619) + some fixes in Dynamic Model. 2012-11-01 01:37:42 +01:00
Eduardo Ramos 569eaf8af0 Fix for column replacement in attributes API 2012-10-31 00:06:29 +01:00
Eduardo Ramos e9b20ac529 Rename Validation API artifact for old plugins. 2012-10-30 22:58:30 +01:00
Eduardo Ramos ee9e693bb7 Fix Issue #631 (Accept 'Infinity' in dynamic intervals ignoring letters case). 2012-10-28 19:39:37 +01:00
Eduardo Ramos a24452bfd8 Fix Issue #664 (add missing license headers) 2012-10-28 19:16:22 +01:00
Eduardo Ramos 408b47f3f8 Review Project serialization with some fixes and documentation. 2012-10-28 19:04:31 +01:00
Eduardo Ramos 357672ff4d Change some artifact names in order to be able to install old plugins (nbms dependencies names have to match).
Update modules specification version to 0.8.2
2012-10-28 02:55:09 +01:00
Eduardo Ramos 3dad51bc9d Make attributes API friendly to adding columns with different ids but the same title.
Fix dynamic average degree column title.
2012-10-28 00:05:55 +02:00
Mathieu Bastian 3102fc9be5 Override thirdparty update center url to avoid 404 error in nightly build 2012-10-25 08:46:56 -07:00
Mathieu Bastian a7480870ac Fix README typos 2012-10-23 08:36:45 -07:00
Mathieu Bastian 3ff58b88e0 Merge pull request #671 from bradh/master
Minor documentation fixes
2012-10-23 08:35:13 -07:00
Mathieu Bastian 96c33c0aad Fix localization integration 2012-10-22 21:02:04 -07:00
Eduardo Ramos 8406d5ac6f Remove UseCompressedOops option for 32 bit JVM. 2012-10-21 21:58:47 +02:00
Mathieu Bastian 4b6d6a175c Update splash.gif 2012-10-21 12:46:47 -07:00
Mathieu Bastian 6dd61b1fb0 Merge branch 'master' of github.com:gephi/gephi-maven 2012-10-19 18:23:13 -07:00
Mathieu Bastian df73f31cb3 JVM options 2012-10-19 18:23:00 -07:00
Mathieu Bastian a020fff6be JVM options fix 2012-10-19 18:18:15 -07:00
Mathieu Bastian a946ef1d9c JVM options 2012-10-19 18:17:08 -07:00
Mathieu Bastian ad28029706 Speed up the build by using parallel builds, one thread per cpu 2012-10-19 18:10:13 -07:00
Eduardo Ramos 4634e7217e Debug dynamic parser 2012-10-19 13:26:22 +02:00
Eduardo Ramos 759e056375 Improved parser for dynamic types. Literal strings are now supported. 2012-10-18 19:02:33 +02:00
Eduardo Ramos ccc765d34f Control and log attribute serialization problems. 2012-10-16 23:35:27 +02:00
Eduardo Ramos f61a8e9793 Fix add edge in data laboratory Issue #683 2012-10-16 23:09:01 +02:00
Mathieu Bastian d1f76ded6e Update splash to 0.8.2 2012-10-16 00:04:29 -07:00
Mathieu Bastian e0a446bc46 Unpack localization during prepare-package phase 2012-10-15 23:52:41 -07:00
Mathieu Bastian aeaa23d7e9 Update branding and metadata 2012-10-15 23:35:43 -07:00
Mathieu Bastian 22c58489a7 Fix nightly build link 2012-10-15 23:03:45 -07:00
Mathieu Bastian 8ee85137a0 Remove version in external and separate to profiles 2012-10-13 20:32:46 -07:00
Mathieu Bastian 7e43adaf80 Updates and apidocs location 2012-10-13 18:22:11 -07:00
Mathieu Bastian a8d9686f95 Better major version detection 2012-10-13 18:17:41 -07:00
Mathieu Bastian 76387e918b Main version 2012-10-13 18:16:55 -07:00
Mathieu Bastian cbc252297f Formatting 2012-10-13 18:15:24 -07:00
Mathieu Bastian faa835ed32 README 2012-10-12 08:39:48 -07:00
Mathieu Bastian 00f23677b6 Fix warning in JOGLNativeInstaller 2012-10-12 00:11:36 -07:00
Mathieu Bastian dc091c5849 Exclude batik dependencies from flamingo 2012-10-11 23:44:42 -07:00
Mathieu Bastian ce0e9a69a9 Dependency to core-library-wrapper 2012-10-11 23:36:01 -07:00
Mathieu Bastian 64463f8e6c Typo in startup param 2012-10-11 23:35:45 -07:00
Mathieu Bastian 48cc183263 Add key in Info.plist for retina display on Mac OS X 2012-10-11 22:47:45 -07:00
Mathieu Bastian 7cf6000e18 Clean old file 2012-10-11 22:47:22 -07:00
Mathieu Bastian 98b31c955f Check for updates every day 2012-10-11 22:47:12 -07:00
Mathieu Bastian b5db9996ab Add core and ui library wrapper modules. Update module dependencies. 2012-10-11 21:57:10 -07:00
Mathieu Bastian 5c635bb6ca Remove jfreechart and commons wrappers 2012-10-11 21:55:51 -07:00
Mathieu Bastian 1754417b85 Merge branch 'master' of github.com:gephi/gephi-maven 2012-10-11 10:58:39 -07:00
Mathieu Bastian 306adefd0f Debug 2012-10-10 23:28:00 -07:00
Mathieu Bastian 5983869d7f Only unpack localization zip in deployment profile 2012-10-10 22:32:21 -07:00
Mathieu Bastian 625495f5dc Centralize commons and jfreechart dependencies in new wrapper modules. Add swinglabs and other librairies as public packages in UI Components. Reduce the number of librariries dependencies. 2012-10-10 22:32:02 -07:00
Eduardo Ramos 098a260c64 Move translations scripts to a new folder 2012-10-10 18:59:41 +02:00
Mathieu Bastian 5778417458 Fix missing netbeans dependencies 2012-10-10 08:36:02 -07:00
Mathieu Bastian 86ce44ba55 Set up dependency management in parent pom to avoid explicit versions in child POMs. 2012-10-09 23:44:54 -07:00
Mathieu Bastian 99fdd776e0 NBM config 2012-10-09 23:07:11 -07:00
Mathieu Bastian e5d13c0203 Add nbm settings 2012-10-09 22:59:25 -07:00
Mathieu Bastian 298aca0d5b Fix typos 2012-10-09 22:58:54 -07:00
Mathieu Bastian c51a160ab2 Fix indentation 2012-10-09 22:58:45 -07:00
Mathieu Bastian 373c35bc79 Add licences 2012-10-09 22:58:16 -07:00
Mathieu Bastian 6bfc371fdc Remove unused property 2012-10-08 08:06:39 -07:00
Eduardo Ramos cd0ea5221f Adapt translation related scripts and configure translations for mavenized repository. 2012-10-07 19:28:01 +02:00
Mathieu Bastian c881cd267f README toolkit 2012-10-05 08:36:28 -07:00
Mathieu Bastian 9d3541085a Merge branch 'master' of github.com:gephi/gephi-maven 2012-10-04 22:10:06 -07:00
Mathieu Bastian 61ce299b06 Try different sources setting to attach and deploy sources artifacts 2012-10-04 22:09:56 -07:00
Eduardo Ramos 0aad688d16 Move branding Bundle.properties to correct folder. 2012-10-04 20:45:52 +02:00
Eduardo Ramos befb397071 Merge branch 'master' of github.com:gephi/gephi-maven 2012-10-04 19:31:24 +02:00
Eduardo Ramos 949c78e4c0 Fix gephi.update.center.thirdparty.url 2012-10-04 19:30:41 +02:00
Mathieu Bastian 2a7bd148ae Remove nbm type dependency 2012-10-03 23:15:52 -07:00
Mathieu Bastian 3e512a8fee Add assmbly plugin to pluginManagement 2012-10-03 18:53:06 -07:00
Mathieu Bastian da7b035d36 Remove unused dependency 2012-10-03 08:41:10 -07:00
Mathieu Bastian bffc9b648c Update plugin versions and clean unused 2012-10-03 08:22:17 -07:00
Mathieu Bastian 566ac791c9 Fix README 2012-10-03 08:04:42 -07:00
Mathieu Bastian 4934ac0fd6 Overview HTML fix 2012-10-02 23:57:03 -07:00
Mathieu Bastian f727bc1642 Update overview style 2012-10-02 22:55:17 -07:00
Mathieu Bastian 78f6f3105e Add javadoc and sources to nightly builds 2012-10-02 18:38:56 -07:00
Mathieu Bastian f9136081a4 Clean stylesheet 2012-10-02 18:27:22 -07:00
Mathieu Bastian bdf6b20b2a Javadoc default stylesheet 2012-10-02 18:25:54 -07:00
Mathieu Bastian b65651d29b Try latest javadoc plugin version to fix doclet issue 2012-10-02 09:24:38 -07:00
Mathieu Bastian 5b6dd5648a Update README 2012-10-02 08:52:32 -07:00
Mathieu Bastian 1ee73a5aaf Update README 2012-10-02 08:44:42 -07:00
Mathieu Bastian abfa850163 Add README 2012-10-01 23:57:02 -07:00
Mathieu Bastian 8d41db01d8 Update testing repository URL 2012-10-01 23:56:52 -07:00
Mathieu Bastian 245434de18 Documentation 2012-10-01 20:52:17 -07:00
Mathieu Bastian 1ee91ec0d3 Update to latest localization file 2012-10-01 20:51:47 -07:00
Mathieu Bastian f030b6f9ce Push latest commits on gephi repository 2012-10-01 20:30:49 -07:00
Eduardo Ramos b69395c3a9 Some Javadoc for Renderable and TextData 2012-09-26 21:08:37 +02:00
Eduardo Ramos bd7b85aa7b Fix bug in data laboratory available columns model and some code cleanup. 2012-09-25 21:29:50 +02:00
Brad Hards 4434ff4487 Fix some README typos. 2012-09-15 11:28:19 +10:00
Eduardo Ramos c5701d8c5f Fix bug in edit window. 2012-08-29 19:14:04 +02:00
Mathieu Bastian 409302299b Fix Javadoc wagon includes 2012-08-19 14:25:37 -07:00
Mathieu Bastian e302638077 Add last commit 2012-08-19 12:46:12 -07:00
Mathieu Bastian 564acfb4fa Add reactor plugin 2012-08-19 12:45:59 -07:00
Mathieu Bastian 73b4730c4a Upload javadoc 2012-08-13 17:50:44 -07:00
Mathieu Bastian 0bbe484b0c Updates location 2012-08-13 17:48:40 -07:00
Eduardo Ramos 1d5ec0803f Better fix for last commit. 2012-08-08 20:30:37 +02:00
Eduardo Ramos 69facc3b20 Fix bug in AttributeTableImpl at getting column by id + type 2012-08-08 19:04:13 +02:00
Mathieu Bastian 1cae117a23 Generate javadoc and sources 2012-08-02 08:29:21 -07:00
Mathieu Bastian 016648903e Debug windows artifact 2012-07-31 21:57:11 -07:00
Mathieu Bastian 372e79c738 Debug 2012-07-31 20:31:04 -07:00
Mathieu Bastian 75237b89f4 Adding the ability to independently create windows and compressed dmg artifacts 2012-07-31 19:57:00 -07:00
Mathieu Bastian fb7f2621df Fix spec version 2012-07-31 08:22:13 -07:00
Mathieu Bastian 1dab2cb3b6 Work on windows installer and fix gephi.conf 2012-07-30 09:01:40 -07:00
Mathieu Bastian 15442be80d Fix symbolic links in dmg 2012-07-30 08:24:55 -07:00
Mathieu Bastian 0fb90a528a Debug wagon upload serverId 2012-07-29 23:29:48 -07:00
Mathieu Bastian ee9f42be38 Debug dmg filename 2012-07-29 22:31:07 -07:00
Mathieu Bastian 5883056b47 Debug linux dmg 2012-07-29 22:10:31 -07:00
Mathieu Bastian 4b67c38e5f Add custom specification version support 2012-07-29 19:57:10 -07:00
Mathieu Bastian 83d315cf0c Update to latest sources 2012-07-25 19:45:24 -07:00
Eduardo Ramos 0d7a683417 Debug .gephi serialization of attributes and filters. 2012-07-25 19:16:14 +02:00
Mathieu Bastian b42417a3f0 Add filtering for autoupdate URLs 2012-07-23 22:51:38 -07:00
Mathieu Bastian 41f82f6484 Documentation 2012-07-23 21:47:13 -07:00
Mathieu Bastian e401428610 Add app title in parent pom 2012-07-23 21:46:44 -07:00
Mathieu Bastian 4ee4857c0e Automate application title in branding 2012-07-23 21:45:05 -07:00
Mathieu Bastian 4377d04fb5 Symlink task optional 2012-07-19 22:46:45 -07:00
Mathieu Bastian e1762d9aee Fix broken dependency 2012-07-19 22:17:37 -07:00
Mathieu Bastian dc93a09e93 Fix Javadoc generation and documentation 2012-07-19 21:05:17 -07:00
Mathieu Bastian aa251f940a Working on the Javadoc generation 2012-07-15 17:18:46 -07:00
Mathieu Bastian da0fd339f2 Fix poms 2012-07-15 12:43:39 -07:00
Mathieu Bastian 9b2079668f Add dmg and correct zip to artifacts and use wagon plugin to upload update center 2012-07-15 11:17:33 -07:00
Mathieu Bastian ff1ae68c1c Add snapshot to modules version 2012-07-14 20:25:35 -07:00
Mathieu Bastian de8c087fd0 Debug pom 2012-07-14 19:15:24 -07:00
Mathieu Bastian 1ab845fe12 Customize install artifacts 2012-07-14 18:57:52 -07:00
Mathieu Bastian f5161a55ac Update parent POM version 2012-07-14 18:01:26 -07:00
Mathieu Bastian 3ede3af94a Fix keystore location 2012-07-14 16:22:03 -07:00
Mathieu Bastian bdc1f92bd8 Skip tests in normal build mode 2012-07-14 16:04:21 -07:00
Mathieu Bastian 9f813b5500 Add keystore support for nbms 2012-07-14 15:42:59 -07:00
Mathieu Bastian 4935d58946 Trying out with Netbeans installers 2012-07-14 11:25:55 -07:00
Mathieu Bastian b88b7e2a03 Disable standalone-zip during normal package phase and create release profile 2012-07-12 08:51:49 -07:00
Mathieu Bastian c7b4fa002c Create OS X application bundle 2012-07-11 21:31:08 -07:00
Mathieu Bastian 3c13058c33 Clean pom 2012-07-11 08:36:54 -07:00
Mathieu Bastian 84bba149f4 Download and unpack localization JARs during branding 2012-07-11 08:36:26 -07:00
Mathieu Bastian b18bd02d3d Update gephi repostory url and add dependency-plugin 2012-07-11 08:36:01 -07:00
Mathieu Bastian 8d1c63c22c Use project.version variable in gephi.conf 2012-07-10 23:56:35 -07:00
Mathieu Bastian 69e7a7b1cd Moving things around and working on poms 2012-07-10 22:07:59 -07:00
Mathieu Bastian 8b07bc8d97 Debug poms 2012-07-10 08:41:46 -07:00
Mathieu Bastian e9ba8cde2a Add missing Bundle.properties for JOGL installer 2012-07-10 08:41:34 -07:00
Eduardo Ramos 90a3538bca Close buffered output stream when writing a .gephi file throws an exception 2012-07-10 16:53:37 +02:00
Mathieu Bastian 67a820003d Working on the parent pom to add properties and automate builds. Cleaning modules pom. 2012-07-10 00:00:13 -07:00
Mathieu Bastian 64b97a17b9 Initial import 2012-07-08 18:11:58 -07:00
Mathieu Bastian f4fdf2c4b7 Merge branch 'master' of github.com:gephi/gephi 2012-07-08 10:36:02 -07:00
Mathieu Bastian eb4a1adc18 Merge pull request #586 from yonromai/master
Fix Issue #509 + Localization Fix
2012-07-08 10:34:30 -07:00
Mathieu Bastian f2934accc0 Improve dynamic set interval responsivness 2012-07-07 19:02:57 -07:00
Mathieu Bastian 8920576b40 Fix issue #651 2012-07-07 17:35:05 -07:00
Mathieu Bastian 1b0cda8968 Fix issue #637 2012-07-07 17:10:52 -07:00
Mathieu Bastian 80fb7706ef Fix issue #636 2012-07-07 16:43:42 -07:00
Mathieu Bastian c8bf74ce2c Increment specs 2012-07-07 16:17:51 -07:00
Mathieu Bastian 7e32c533f6 Merge branch 'master' of github.com:gephi/gephi 2012-07-07 16:17:01 -07:00
Mathieu Bastian 52cfb8e3f9 Fix issue #650 2012-07-07 16:11:25 -07:00
Mathieu Bastian aeb002b8b1 Merge pull request #621 from bgamari/dot-fixes
Dot fixes.
2012-07-07 15:19:18 -07:00
Mathieu Bastian 58d05835fc Revert fix for issue #609 because causing NPE 2012-07-07 12:40:43 -07:00
Mathieu Bastian 580200fdda Fix issue #649 2012-07-07 12:39:59 -07:00
Eduardo Ramos b70fb380b1 Remove margin value after png or svg export 2012-07-02 17:08:37 +02:00
Eduardo Ramos dc1965eb4a Increment specs 2012-06-24 16:31:40 +02:00
Eduardo Ramos b27ea25b76 Merge pull request #647 from oxling/master
Fix Issue #630
2012-06-24 07:29:13 -07:00
Amy e687a642cd Fix for issue #630 2012-06-23 17:22:54 -04:00
Eduardo Ramos 1f9844320b Change .gephi file version to 0.8 instead of 0.8.1
It needs to be a float
2012-06-22 13:20:23 +02:00
Eduardo Ramos be324d9c21 Update project serialization version header 2012-06-21 20:35:33 +02:00
Eduardo Ramos 4ae16e7faa Fix serialization bug in Preview 2012-06-12 18:08:53 +02:00
Sébastien Heymann ce190c2c62 Merge pull request #642 from betelgeuse/master
Typo fix connetion to connection
2012-06-11 04:16:17 -07:00
Petteri Räty 1d6410c6e3 Typo fix connetion to connection 2012-06-11 11:28:07 +03:00
Eduardo Ramos f687271321 Make data laboratory show only visible graph option enabled by default. See Issue #634 2012-06-02 00:04:38 +02:00
Ben Gamari 8a7fed5fbe ImporterDOT: Support quoted HTML color codes 2012-05-27 17:09:10 -04:00
Sebastien Heymann d8c7ae54e0 Fix issue #615 2012-05-20 18:06:39 +02:00
Sébastien Heymann 00d43181b8 Merge pull request #626 from brycethomas/master
Fixes calculation of clustering coefficient on graph (Issue #625)
2012-05-20 03:42:41 -07:00
Bryce Thomas 16c7da760a amended the calculation of average clustering coefficient for undirected graphs 2012-05-17 22:53:20 +10:00
Sébastien Heymann 77a0699901 Merge pull request #622 from betelgeuse/master
Simple typo fix
2012-05-15 09:05:20 -07:00
Petteri Räty 1096938acf Typo fix curently to currently 2012-05-15 17:31:05 +03:00
Sebastien Heymann 56369d16b8 Merge branch 'master' of github.com:gephi/gephi 2012-05-15 15:59:19 +02:00
Sebastien Heymann 7c9ea7ea0f Fix Les Miserables.gexf 2012-05-15 15:59:04 +02:00
Eduardo Ramos fd1a43990a Remove fix for Issue #605 due to Processing behaving differently on different systems. 2012-05-15 14:10:09 +02:00
Ben Gamari 083a44d10b ImporterDOT: Add missing nextToken() call 2012-05-13 21:02:35 -04:00
Ben Gamari a5cbb5b7a5 ImporterDOT: Ensure alpha channel is used 2012-05-13 19:39:57 -04:00
Ben Gamari 8492565763 ImporterDOT: Rework error handling in color parser 2012-05-13 19:38:04 -04:00
Ben Gamari 999ceeed4a ImporterDOT: Accept commas as well as spaces to delimit HSV colors 2012-05-13 18:36:32 -04:00
Ben Gamari 97db7d8fc3 ImporterDOT: Log error on failed color parse 2012-05-13 18:33:46 -04:00
Ben Gamari edbabec190 ImporterDOT: Support HTML color codes 2012-05-13 18:17:14 -04:00
Ben Gamari 710a6a4831 ImporterDOT: Refactor color parsing into separate function 2012-05-13 18:17:14 -04:00
Ben Gamari 6062042038 ImporterDOT: Dot file color triples are in HSV parameterization. 2012-05-13 18:17:08 -04:00
Sebastien Heymann 3b58262d71 Fix issue #612 by adding the support of Unix timestamp to ImporterGEXF and DynamicModel 2012-05-08 18:28:47 +02:00
Sebastien Heymann f7ca0aca74 Fix LesMiserables.gexf 2012-05-08 17:44:19 +02:00
Sebastien Heymann ee0dd41b1d Fix issue #300 on GML import to support scientific notation 2012-05-08 16:02:28 +02:00
Sebastien Heymann 1c93d7d7e2 Merge branch 'master' of github.com:gephi/gephi 2012-05-08 13:55:51 +02:00
Sebastien Heymann 50616f3573 Fix issue #604 on GML export 2012-05-08 13:55:19 +02:00
Eduardo Ramos 0e05cfd1db Fix problem with preview managed renderers that would happen if renderers not obtained through Lookup were set. 2012-05-08 13:45:42 +02:00
Sebastien Heymann 74c8dcb387 Remove an unnecessary warning on GEXF import when dynamic values are out of bounds. 2012-05-08 13:30:15 +02:00
Sebastien Heymann 7c57caa598 Fix issue #570 on GEXF export 2012-05-08 13:16:53 +02:00
Sebastien Heymann 4ab45b9814 Increment API versions for recent commits 2012-05-08 11:12:25 +02:00
Sebastien Heymann 42226f1956 Fix issue #609 2012-05-07 00:38:15 +02:00
Sebastien Heymann 11e09aa7ca Add "set time format" option to Timeline 2012-05-05 22:10:32 +02:00
Eduardo Ramos f9c4a628ac Fix Issue #605 2012-05-01 16:02:16 +02:00
Eduardo Ramos 8af3d3e6b2 Disable second mechanism for hiding columns in data laboratory tables (Issue #590) 2012-04-29 21:26:33 +02:00
Eduardo Ramos 67f0517dd1 Fix Issue #601 2012-04-29 20:59:19 +02:00
Eduardo Ramos 79348c7847 Unselect current tool when project is closed.
Small improvements to edge pencil and sizer tools.
2012-04-29 19:25:17 +02:00
Eduardo Ramos 9dcf00c62c Improve EdgePencil edge type selection, localize new text and listen to workspace events in order to update status. 2012-04-29 18:53:44 +02:00
Eduardo Ramos 2a1cd83f35 Merge branch 'master' of https://github.com/wumalbert/gephi 2012-04-29 17:39:08 +02:00
Eduardo Ramos 71b02f2a6e Improve Issue #463 fix error control. 2012-04-29 17:22:37 +02:00
Eduardo Ramos ce9fd80281 Merge pull request #596 from vikash-anand/master
Fix Issue #463
2012-04-29 08:08:55 -07:00
Eduardo Ramos 0b61a9f580 Update specs version 2012-04-22 15:07:32 +02:00
Eduardo Ramos ad3821d2e9 Merge pull request #597 from taynaud/master
Fix #577
2012-04-22 06:04:45 -07:00
Thomas Aynaud d912d8ba0c Modularity : adds reports about the modularity including resolution 2012-04-21 18:58:01 +02:00
Thomas Aynaud 31b110e88c Clean Modularity to remove debug information 2012-04-21 18:27:05 +02:00
Thomas Aynaud ce88947219 Fix bug in Modularity
Because of weights being float, Modularity was not able to detect when a node stops being connected to a community (==0. was not certain enough). Now it keeps a count of how many edges there are and only disconnect a community when
this count is 0.
2012-04-21 18:25:19 +02:00
Thomas Aynaud 6943181359 Merge branch 'master' of git://github.com/gephi/gephi 2012-04-21 17:45:58 +02:00
Vikash Anand cdbb2ea158 changed open dialog to save dialog 2012-04-20 14:42:37 +05:30
Eduardo Ramos 270335c597 Fix UI freeze when checking latest gephi version caused by bad proxy configuration 2012-04-13 22:05:51 +02:00
Romain Yon f249c97ae4 Reporting StatisticsUI changes into overview.html 2012-04-10 15:29:58 +02:00
Romain Yon f54a7ec9f5 Merge remote-tracking branch 'upstream/master' 2012-04-10 15:02:56 +02:00
Thomas Aynaud 93a793ab38 Small workaround to Modularity bug with weights
Correct a bug when using small weights. Sometimes, the connections between two communities continue to exist because the weight of their connection is close to 0. but not strictly 0.
It is still a workaround and more investigations are needed to see if it is a deeper issue.
2012-04-09 20:02:19 +02:00
Eduardo Ramos 07d691d56b Keep main window size, position and state between perspective changes. 2012-04-08 17:19:55 +02:00
Min WU 905e2ba9fa Add a JComboBox for edge type within edge pencil panel, tring to fix bug issue 549. 2012-04-04 19:41:17 +08:00
Min WU 97a8a287d9 Add a combobox for user to choose edge types in edge pencil panel. And the combobox is enabled or disabled according to the type of the graph, directed, undirected or mixed. 2012-04-04 14:05:17 +08:00
Romain Yon 2cab498576 Fix issue #509 2012-04-03 18:05:49 +02:00
Romain Yon b654884015 Localizing the group bar titles (in the extended viz tool bar) 2012-04-03 16:04:48 +02:00
Eduardo Ramos b1399e7608 Fix Issue #575 2012-04-02 21:46:40 +02:00
Eduardo Ramos c12a784dfa Disable data tables auto EditWindow selection because the call to findInstance in EditWindowController seems to randomly and rarely create exceptions 2012-03-31 15:46:11 +02:00
Eduardo Ramos abc5ac819f Pull a few corrupted translations fixed in transifex 2012-03-31 15:26:09 +02:00
Sebastien Heymann 599473a9a8 Add node/edge attributes open intervals 2012-03-28 10:57:40 +02:00
Mathieu Bastian a2f24ea971 Merge pull request #569 from luizribeiro/selfloop
Fix issue #566 by creating a Self-Loop Filter
2012-03-27 23:22:05 -07:00
Luiz Ribeiro 68baa13678 Fix issue #566 by creating a Self-Loop Filter 2012-03-28 02:47:52 -03:00
Mathieu Bastian a302493d58 Fix local scale button enabled and auto transform with attribute-based dynamic graph. Related to issue #541. 2012-03-27 22:01:46 -07:00
Mathieu Bastian ab45cc12ff Fix min/max calculation for dynamic graphs in ranking 2012-03-27 08:53:28 -07:00
Mathieu Bastian 475ec77971 Fix issue detecting attribute-based only dynamic graph 2012-03-27 08:53:07 -07:00
Eduardo Ramos af2107ba99 Fix Issue #568 by adding needsItemBuilder to Preview Renderer 2012-03-26 22:17:19 +02:00
Eduardo Ramos 6bbea86d8b Fix timeline tooltip current value bug 2012-03-26 18:25:38 +02:00
Eduardo Ramos 976eec441b Fix timeline bounds dialog accuracy problem 2012-03-26 16:03:31 +02:00
Mathieu Bastian 0536d5eb91 Fix issue with inclusive/exclusive bounds for Range 2012-03-25 23:34:32 -07:00
Eduardo Ramos 3ee7346a0c Update API changes 2012-03-23 17:10:40 +01:00
Eduardo Ramos 8015c2a38c Fix changed modularity UI header translations 2012-03-23 16:39:09 +01:00
Mathieu Bastian 17b57a924f Simplify modularity help strings a little 2012-03-22 22:22:36 -07:00
Mathieu Bastian ab3c0f375a Merge pull request #567 from taynaud/master
Modularity imporvement. This is awesome guys!
2012-03-22 21:30:11 -07:00
Thomas Aynaud eaddf57c08 Add resolution parameter to modularity. Clean debug output. 2012-03-22 23:05:24 +01:00
Thomas Aynaud 3be071034b Add weights handling to modularity 2012-03-22 22:12:16 +01:00
Eduardo Ramos 685206a255 Merge branch 'master' of github.com:gephi/gephi 2012-03-22 00:14:59 +01:00
Eduardo Ramos 0948b5116f Only show renderers manager when some plugin renderer exists.
Show inverse order of renderers in renderer manager UI to be more intuitive (top renderers are on top of the rendered image).
2012-03-22 00:02:14 +01:00
Mathieu Bastian 44ac507fcf Minor timeline tooltip fix 2012-03-20 21:21:22 -07:00
Mathieu Bastian a0500acd32 Udpate app title 2012-03-19 19:36:00 -07:00
Eduardo Ramos f20ac1380e Implement default preview renderers extension and PreviewWorkspaceDuplicateProvider.
Include getDisplayName in Renderer interface.
2012-03-19 19:43:49 +01:00
Eduardo Ramos 0219a1927c Update user directory, catalog URL and last version checker for 0.8.1-beta 2012-03-19 19:34:19 +01:00
Mathieu Bastian 5f85abe7ba Update version nummber and branding 2012-03-17 14:28:54 -07:00
Mathieu Bastian db66abe08a Merge branch 'master' of github.com:gephi/gephi 2012-03-15 18:44:37 -07:00
Mathieu Bastian c8aa2c436d Improve the renderer manager ui 2012-03-15 18:42:21 -07:00
Eduardo Ramos 148e0587e7 Pull latest translations from transifex 2012-03-16 02:03:36 +01:00
Mathieu Bastian 46a242e333 Improve min/max management in dynamic index 2012-03-15 17:59:30 -07:00
Eduardo Ramos 09b17c8769 Add DynamicModelDuplicateProvider to toolkit build script. 2012-03-15 14:10:45 +01:00
Eduardo Ramos f4f7d9dea8 Fix Issue #562 2012-03-15 14:09:38 +01:00
Mathieu Bastian 53c0f2e93a Merge branch 'master' of github.com:gephi/gephi 2012-03-14 23:30:47 -07:00
Mathieu Bastian 3bc13f012e Fix issue #552 2012-03-14 23:30:02 -07:00
Mathieu Bastian 3e3e737717 Merge pull request #561 from Pinkerton/patch-1
Fix issue #530
2012-03-14 18:22:09 -07:00
Mathieu Bastian 8185651d73 Merge branch 'master' of github.com:gephi/gephi 2012-03-14 18:03:17 -07:00
Mathieu Bastian 90663dbfff Update API Changes 2012-03-14 18:02:52 -07:00
Mathieu Bastian 06c34ba4d4 Update PerspectiveAPI documentation 2012-03-14 18:02:43 -07:00
Mathieu Bastian 965dd2e432 Render sparkline with levels in timeline 2012-03-14 18:00:27 -07:00
Pinkerton 0790f92094 Fix issue #530 2012-03-14 17:44:46 -07:00
Eduardo Ramos 3105791898 Keep preview properties parents on top and other properties in declaration order instead of alphabetic 2012-03-14 21:30:33 +01:00
Mathieu Bastian ab5c9d8e06 Fix initializing range filters from file open 2012-03-13 23:44:44 -07:00
Mathieu Bastian c52cdc13e6 Fix naming issues and equal filter NPE 2012-03-13 23:44:14 -07:00
Mathieu Bastian e89606c1a5 Fix issue #537 2012-03-13 23:07:27 -07:00
Mathieu Bastian 7599b8768b Fix sparkline position and dimension in timeline with filtered graph 2012-03-13 21:42:47 -07:00
Mathieu Bastian cce734e502 Fix issue #554 2012-03-13 18:37:00 -07:00
Mathieu Bastian f09b53adc3 Time format in the report 2012-03-13 18:22:59 -07:00
Mathieu Bastian a4e545b530 Support datatime in gexf export 2012-03-13 18:22:17 -07:00
Mathieu Bastian 600bdedad9 Fix issue #553 2012-03-11 17:43:50 -07:00
Mathieu Bastian 0cebb07e85 Minor timeline fixes and tooltip text 2012-03-10 21:07:07 -08:00
Mathieu Bastian cd0c5c5c37 Disable dynamic filtering when closing timeline 2012-03-10 21:06:26 -08:00
Sebastien Heymann 5fe93b9798 Fix issue 547 2012-03-09 12:54:25 +01:00
Eduardo Ramos 293976377c Fix Issue #550 2012-03-08 22:05:13 +01:00
Eduardo Ramos 0ab7e698bf Update translation .pot resources 2012-03-08 16:00:52 +01:00
Eduardo Ramos b746326376 Merge branch 'renderers_manager' of github.com:eduramiba/gephi 2012-03-07 13:31:08 +01:00
Eduardo Ramos 7df38f3680 Show new release message after UI is ready 2012-03-07 13:28:29 +01:00
Mathieu Bastian ac5fac107a Fix timeline NPE 2012-03-07 00:13:36 -08:00
Eduardo Ramos 0f8706d74f Fix Issue #546 2012-03-06 23:14:50 +01:00
Eduardo Ramos 8239456d51 Update translations resource files and transifex config.
Added Czech language.
2012-03-05 18:36:11 +01:00
Eduardo Ramos ff75e3a3a4 Implement new major version message 2012-03-05 18:30:58 +01:00
Mathieu Bastian eaf8f0fc9a Fix issue #542 2012-03-04 20:16:17 -08:00
Mathieu Bastian f65808467b Fix issue #541. Adding a new local scale button to ranking 2012-03-04 12:58:52 -08:00
Eduardo Ramos 3f671ad061 Added some documentation and help info to RendererManager. 2012-03-03 22:36:42 +01:00
Mathieu Bastian 7b44406b7e Fix issue #539 2012-03-03 12:24:50 -08:00
Mathieu Bastian 9d882c437c FIx issue #516 2012-03-03 12:07:23 -08:00
Mathieu Bastian 3e8608d9f8 Open/Close timeline when starting dynamic graph 2012-03-03 11:55:32 -08:00
Eduardo Ramos 35bed0b71f Some improvements to renderers manager implementation.
Now each workspace manages renderers separately and persistence is supported.
2012-03-03 19:06:01 +01:00
Eduardo Ramos 905564d7c5 Merge branch 'master' into renderers_manager 2012-03-03 13:19:55 +01:00
Eduardo Ramos 7335bb3415 Debug TopComponents 2012-03-03 13:17:25 +01:00
Eduardo Ramos acc58f243c Initial implementation of Preview Renderers Manager 2012-03-03 02:08:27 +01:00
Eduardo Ramos 77813b12fb Add 3 missing dependencies that netbeans states as necessary 2012-03-02 20:44:19 +01:00
Mathieu Bastian 9181b4ffc4 Better initialization for operators and debugging 2012-03-02 00:19:58 -08:00
Mathieu Bastian 682d8496b6 Update some module config files 2012-03-02 00:19:24 -08:00
Mathieu Bastian 15229f8fd4 Remove unused dependencies 2012-03-01 23:08:25 -08:00
Mathieu Bastian 31868cef2b Add inclusive/exclusive support in filters' range 2012-03-01 22:31:07 -08:00
Mathieu Bastian f53d25930b Fix the name of the property 2012-03-01 22:13:37 -08:00
Mathieu Bastian 0a55a94250 Avoid duplicate finish call in Progress 2012-03-01 22:01:01 -08:00
Mathieu Bastian 15faee1b26 Debug Welcome Screen 2012-03-01 22:00:23 -08:00
Mathieu Bastian ca6b9992ce Minor tweak 2012-03-01 21:34:01 -08:00
Mathieu Bastian 5671f26886 Welcome Screen using JDialog instead of TopComponent 2012-03-01 21:33:38 -08:00
Mathieu Bastian 604387a9e5 Put RangeFilter in the FiltersAPI and simplify range management accross plugins. Range values are now set by the FilterProcessor directly and put into the Range object. Update existing range filters 2012-03-01 08:43:53 -08:00
Mathieu Bastian 638423ba05 Update localization zip to 7.1 2012-03-01 08:07:15 -08:00
Mathieu Bastian 8d93d454f5 Try to simplify a bit Attribute based filter by adding AttributableFilter and abstact filters in FiltersPlugin 2012-02-29 19:26:47 -08:00
Mathieu Bastian 449c2c4277 Update specs version 2012-02-26 20:20:16 -08:00
Mathieu Bastian 5d814fb018 Update the timeline to use the BottomComponent spi. 2012-02-26 19:40:18 -08:00
Mathieu Bastian 8bb61a2242 Add all new modes based on view instead of editors in the DesktopBranding . Remove the NotTabsDisplayer hack. 2012-02-26 19:39:27 -08:00
Mathieu Bastian bed3aa35f5 Remove PerspectiveMember from the PerspectiveAP as we now uses default Netbeans roles. Add a custom BottomComponent AP to hack the timeline in the main content pane instead of using a mode. Cleaning. 2012-02-26 19:15:34 -08:00
Mathieu Bastian dda3515e09 Remove unused dependency in platform. 2012-02-26 17:28:15 -08:00
Mathieu Bastian 694ead7beb Remove deprecated dependency to SwingLayout module 2012-02-26 17:26:40 -08:00
Mathieu Bastian 2d3450027e Add @ServiceProvider annotaton to DesktopHierarchy 2012-02-26 17:25:01 -08:00
Mathieu Bastian f81a2e30bb Update all TopComponents to use new registration system using annotations. As modes are now defined in the annotation, clean-up all layer.xml and modes in modules. Remove the group system and add overview, datalab and preview roles to top components. 2012-02-26 17:24:18 -08:00
Mathieu Bastian a70665f614 Update the platform to 7.1 and config files to use the new platform and harness autoupdate capabilities 2012-02-25 12:47:26 -08:00
Eduardo Ramos 70286501ca Show sparlines in data laboratory even when there is only 1 value available. 2012-02-25 17:37:28 +01:00
Eduardo Ramos 9f7b7890a9 Merge pull request #517 from taynaud/master
Fix issue 58
2012-02-25 08:21:48 -08:00
Sebastien Heymann b51520828b Merge branch 'master' of github.com:gephi/gephi 2012-02-25 16:40:07 +01:00
Sebastien Heymann 4a9bbf827a Add "GEXF 1.2" notification to Import Report. 2012-02-25 16:34:52 +01:00
Eduardo Ramos ee87517397 Show sparkline in data laboratory with only 2 numbers 2012-02-25 16:29:16 +01:00
Mathieu Bastian 0e0e42c86b Fix issue #518 2012-02-23 22:27:25 -08:00
Mathieu Bastian 35a28295cc Fix custom bounds exception with non initialized visible interval 2012-02-23 22:26:37 -08:00
Mathieu Bastian 91f0084b5e Update specs version 2012-02-23 22:04:16 -08:00
Mathieu Bastian ef17efd0bc Merge 2012-02-23 22:00:53 -08:00
Eduardo Ramos 028b1256fc Fix Issue #519 2012-02-22 22:49:56 +01:00
Eduardo Ramos 28817f34ee Enable windows close buttons 2012-02-15 21:21:34 +01:00
Eduardo Ramos 2b2eebd4a1 Fix Issue #527
TimeIntervalGraphics now represents all intervals instead of only first start and last end.
2012-02-11 20:41:09 +01:00
Eduardo Ramos e1ae3c8cff Use dynamic numbers intervals start time as data laboratory sparklines X values like the new timeline does (See Issue #527) 2012-02-11 19:05:37 +01:00
Eduardo Ramos 6cf756b325 Simplify EditWindow code thanks to Attributable interface 2012-02-11 18:21:18 +01:00
Eduardo Ramos 3348cc65fe Fix Issue #528 2012-02-11 18:08:28 +01:00
Eduardo Ramos 76a6b30dea Merge branch 'master' of github.com:gephi/gephi 2012-02-11 14:38:53 +01:00
Eduardo Ramos ca022e329f Merge pull request #524 from megaterik/gml-patch
GML exporter fix
2012-02-11 05:36:56 -08:00
Eduardo Ramos 34ab3923fc Delete unnecesary file from last merge. 2012-02-11 14:25:19 +01:00
Eduardo Ramos 6061cc1154 Merge pull request #523 from megaterik/vna-exporter
Netdraw VNA exporter
2012-02-11 05:22:05 -08:00
Eduardo Ramos 95f91ab7c1 Fix Issue #508
Completed Sparklines documentation
2012-02-10 02:42:07 +01:00
Taras Klaskovsky 579d67c9ee Add dynamic weight for edges 2012-02-10 01:58:25 +03:00
Taras Klaskovsky ee5cc538ff Add dynamic weight for edges 2012-02-10 01:40:48 +03:00
Taras Klaskovsky 4110ab2d6d Modify non-unique labels 2012-02-10 01:20:22 +03:00
Taras Klaskovsky 5bb1fcffac Add dynamic edge weight, rewrite matrix format 2012-02-10 00:28:16 +03:00
Eduardo Ramos f20d9adc0c Fix column names bug when importing CSV files in data laboratory 2012-02-09 16:18:05 +01:00
Taras Klaskovsky 094112158d Split one undirected edge to two directed, fix nodes with same labels, fix some unreadable by parser characters 2012-02-09 00:18:33 +03:00
Eduardo Ramos 680ae57e61 Fix possible issue of missing self-loops when merging nodes 2012-02-08 18:42:11 +01:00
Eduardo Ramos 80f419e3bd Fix Issue #515 by ignoring columns with empty headers 2012-02-08 18:31:23 +01:00
Eduardo Ramos 3fe6a3963e Fix several bugs in edge data table:
Dynamic weight column was not replaced correctly leading to an exception when editing a row.
Graph table columns appeared in edge table.
JXTable strangely did not provide a default editor for String.class.
2012-02-08 17:38:20 +01:00
Taras Klaskovsky 20c86002ec Fix few issues of gml-exporter: dynamic graphs, directed\undirected tag, user ids instead of system's, some text formatting 2012-02-05 21:06:53 +03:00
Mathieu Bastian c7a3440f50 Merge pull request #521 from neil-rubens/patch-1
Validator of MySQL's "host" field.
2012-02-04 11:28:39 -08:00
neil-rubens 1f299bf902 for the MySQL's "host" field
original validator (HOST_NAME_OR_IP_ADDRESS) does not seem allow DNS hostnames; 
e.g. address of MySQL hosted by Amazon's RDS service: db3.c32l4fl.ap-northeast-1.rds.amazonaws.com 

Fixed it by using the REQUIRE_NON_EMPTY_STRING validator
2012-02-03 16:57:17 +09:00
Taras Klaskovsky 5d0f3c27a0 few small issues are fixed 2012-02-02 20:21:25 +03:00
Taras Klaskovsky 9416d273ff Added license, made attempt of localization 2012-02-02 12:36:33 +03:00
Taras Klaskovsky 3413fb1dad Added support of dynamic attributes and fixed problems with parser, caused by punctuation 2012-02-02 11:44:27 +03:00
Thomas Aynaud cc6e888053 Fix issue 58
was Bug #768938 in launchpad
2012-02-01 13:31:08 +01:00
Taras Klaskovsky 1008f7ec05 added options menu, non-standart attributes, normalization 2012-01-31 03:53:53 +03:00
Taras Klaskovsky 90f2fa8cb7 Basic functionality of vna exporter 2012-01-30 03:26:48 +03:00
Taras Klaskovsky f837ced162 Basic functionality of vna exporter 2012-01-30 03:24:34 +03:00
Mathieu Bastian bc11a9459b Fix issue 487 2012-01-28 11:30:56 -08:00
Mathieu Bastian daf029e7db Fix min/max update process 2012-01-26 18:41:38 -08:00
Mathieu Bastian a5f01b42fe Fix timeline background 2012-01-26 18:41:10 -08:00
Mathieu Bastian 5d528fe9a5 Fix issue #506 2012-01-23 23:50:36 -08:00
Mathieu Bastian 619c709982 Fix issue #513 2012-01-23 23:39:13 -08:00
Mathieu Bastian e4a70d7469 Fix issue #514 2012-01-23 23:12:26 -08:00
Mathieu Bastian 6cd73c4524 Update specs version 2012-01-23 22:59:06 -08:00
Mathieu Bastian 34eb0ce143 Merge pull request #510 from gregglind/patch-1
c+p correction:  HITS hub chart was repeated twice in output.
2012-01-23 22:57:37 -08:00
Mathieu Bastian 334ac2e008 Merge branch 'master' of github.com:gephi/gephi 2012-01-23 22:56:07 -08:00
Mathieu Bastian c0446e61db Tooltip position and icon 2012-01-23 22:54:10 -08:00
Mathieu Bastian 7f05739890 Fix minor RichTooltip position issue 2012-01-23 22:53:45 -08:00
Mathieu Bastian be9010ca3d Remove min, max and interval from TimelineModel and rely on DynamicModel to avoid inconsisten states 2012-01-23 22:17:21 -08:00
Mathieu Bastian 341848cea9 Fix multiple dynamic listeners 2012-01-22 19:05:11 -08:00
Mathieu Bastian 81c0b660d7 Fix timeline background issue 2012-01-20 10:01:14 -08:00
Gregg Lind 5b708188ed c+p correction: HITS hub chart was repeated twice in output.
(general review of all metrics reports suggested, but beyond scope of this fix)
2012-01-18 15:01:13 -06:00
Eduardo Ramos b1faceb1cd Forgot to apply previous debug to other cases. 2012-01-18 16:59:36 +01:00
Eduardo Ramos 67dff6008a Debug CustomBoundsDialog 2012-01-18 16:55:25 +01:00
Mathieu Bastian 2368e1bb2f API Changes 2012-01-17 23:33:45 -08:00
Mathieu Bastian 4bc04852b0 Fix Javadoc packages 2012-01-17 23:27:04 -08:00
Mathieu Bastian 6ad949bd2d Documentation 2012-01-17 23:26:56 -08:00
Mathieu Bastian 9d2c14ad69 Add TimelineAPI to Javadoc 2012-01-17 23:16:39 -08:00
Mathieu Bastian 7783ecdc90 Documentation 2012-01-17 23:16:26 -08:00
Mathieu Bastian 6ab2d0c447 Step size 50ms in play settings 2012-01-17 20:30:35 -08:00
Mathieu Bastian 442929f0c6 Debug interval race event 2012-01-17 20:30:25 -08:00
Mathieu Bastian 2d473143d7 Debug seting custom bounds 2012-01-17 20:22:49 -08:00
Mathieu Bastian 39a1875c96 Debugging timeline tooltip 2012-01-17 18:18:13 -08:00
Mathieu Bastian d385fc30a7 Add tooltip in timeline 2012-01-16 23:04:55 -08:00
Mathieu Bastian 1004c34db2 Add showTooltip with location to RichTooltip 2012-01-16 23:04:28 -08:00
Mathieu Bastian a84bf21e5a Debug interval events 2012-01-16 19:35:29 -08:00
Mathieu Bastian b6eb3fd5f9 Debug 2012-01-15 22:40:04 -08:00
Mathieu Bastian 9138e0fe60 Debug 2012-01-15 20:56:39 -08:00
Mathieu Bastian 3bd336a283 Add play settings button and debug 2012-01-15 20:09:50 -08:00
Mathieu Bastian e8a3e2bad6 Debug animation and add add configuration methods 2012-01-15 20:09:29 -08:00
Mathieu Bastian 53a56f5e89 Add time format event in DynamicAPI 2012-01-15 20:09:02 -08:00
Mathieu Bastian d4cf253127 Debug drawer exception 2012-01-15 20:07:30 -08:00
Mathieu Bastian 052a1e0826 Add animation settings panel 2012-01-15 20:07:05 -08:00
Mathieu Bastian 79677eacb9 Debug tick colors 2012-01-15 17:25:35 -08:00
Mathieu Bastian 800b446ca4 UI timeline 2012-01-15 17:16:16 -08:00
Mathieu Bastian d52b4ce2df Debugging and non-dynamic graph support in timeline 2012-01-15 16:03:28 -08:00
Mathieu Bastian 29e5f3129e Update icon 2012-01-15 16:03:00 -08:00
Mathieu Bastian c0725d26d5 Cleaning and license 2012-01-15 14:45:05 -08:00
Mathieu Bastian d414d09ceb Timeline icons 2012-01-15 14:44:38 -08:00
Mathieu Bastian b08ca20c20 New Timeline API with renewed implementation. Integrate GSoC changes. Rewrote tick system and add sparkline. Simplified DesktopTimeline module based on model's events. Remove Timeline SPI. 2012-01-15 14:33:22 -08:00
Mathieu Bastian d375e50684 Add graph attributes support in dynamic metrics. Add localization. 2012-01-15 14:29:37 -08:00
Mathieu Bastian d49577ee67 Bump specs version 2012-01-15 14:28:39 -08:00
Mathieu Bastian 19ec908556 Add dates conversion utils 2012-01-15 14:26:55 -08:00
Mathieu Bastian 7495efa89b Update Utils specs version 2012-01-15 14:25:56 -08:00
Mathieu Bastian ede18ba817 Add transparent background and area fill in sparklines 2012-01-15 14:23:35 -08:00
Eduardo Ramos b3e10a84d0 Flag icons for new languages. 2012-01-14 19:39:21 +01:00
Eduardo Ramos 942d02a0ef Update translation resources and localize some missing resources. 2012-01-14 19:24:45 +01:00
Mathieu Bastian 7b6c813efa Fix issue #505 2012-01-10 18:25:14 -08:00
Mathieu Bastian aea5ec8a68 Minor fix 2012-01-07 14:50:04 -08:00
Mathieu Bastian 5e0f23fc25 Remove width and height from properties 2012-01-07 14:01:08 -08:00
Mathieu Bastian 4496355115 Merge branch 'master' of github.com:gephi/gephi 2012-01-07 10:34:14 -08:00
Eduardo Ramos dbb655c4de Fix Issue #503 2012-01-07 15:51:33 +01:00
Mathieu Bastian 4ce8ee9bd7 Add user and adobe font folders in font registration 2012-01-01 13:52:54 -08:00
Mathieu Bastian 2f8b1bec01 Merge branch 'master' of github.com:gephi/gephi 2011-12-30 15:01:17 -08:00
Mathieu Bastian 5c95e7ab79 Add settings upgrader module to import previous installation preferences 2011-12-30 15:01:06 -08:00
Eduardo Ramos be9cbc23cb Implement MergeNodeDuplicates (see Issue #499)
Move some GeneralActionsManipulators to the More actions popup button
2011-12-22 15:26:27 +01:00
Mathieu Bastian c078bce675 Method to directly release the toolkit with the latest demos 2011-12-19 20:44:57 -08:00
Eduardo Ramos bfd7c2fb18 Fix Issue #500
And avoid negative border size in ArrowRenderer
2011-12-19 20:00:52 +01:00
Mathieu Bastian a661576bf1 Fix teradata jdbc url 2011-12-18 13:06:37 -08:00
Mathieu Bastian 0069b55824 FIx issue #487 2011-12-17 00:01:40 -08:00
Mathieu Bastian 63f08ec6b6 Clean old timning framework jar 2011-12-16 23:59:12 -08:00
Mathieu Bastian 347d0122d7 Merge branch 'master' of github.com:gephi/gephi 2011-12-16 17:58:08 -08:00
Mathieu Bastian 6561d56730 Fix issue #478 2011-12-16 17:57:32 -08:00
Eduardo Ramos 42ac9f67d1 Fix Issue #497 and Issue #498 2011-12-17 01:38:07 +01:00
Mathieu Bastian ac07f8c143 Add README image 2011-12-16 08:24:16 -08:00
Mathieu Bastian 9ab0ab1dc8 Fix issue #494 2011-12-14 23:46:00 -08:00
Mathieu Bastian 6a3ccd6294 API changes 2011-12-14 21:51:17 -08:00
Mathieu Bastian b391c9ebb8 Perspective API documentation 2011-12-14 21:51:04 -08:00
Mathieu Bastian 1bc0fb0c24 Take Perspective API and SPI from DesktopPerspective and put it in a new PerspectiveAPI module. Add property for default perspective. 2011-12-14 19:30:12 -08:00
Mathieu Bastian a6a98905dc Merge 2011-12-14 18:03:36 -08:00
Mathieu Bastian 841e53e928 Use System.property rather than NBPreferences for startup prefs 2011-12-14 18:01:42 -08:00
Eduardo Ramos 3e021ca517 Prevent possible future bug with last commit 2011-12-15 00:43:17 +01:00
Eduardo Ramos 1c0facc9c4 Fix spreadsheet import weight sum bug when undirected edges are reversed 2011-12-15 00:40:08 +01:00
Eduardo Ramos 76334ed05b Fix Issue #493 2011-12-13 20:00:08 +01:00
Eduardo Ramos b899737194 Fix Preview Font persistence 2011-12-13 19:54:28 +01:00
Mathieu Bastian ccd3b933c2 Fix issue #493 2011-12-12 18:28:44 -08:00
Mathieu Bastian 1734c786ac Add Ant target to create zipped javadoc 2011-12-12 18:19:55 -08:00
Eduardo Ramos ae80e7a78f Minor improvements to SparklineGraph flexibility 2011-12-12 21:06:07 +01:00
Eduardo Ramos 76d671bdfd Added support of PreviewProperties simple values project persistence (such as preview background color and visibility ratio). 2011-12-10 00:16:33 +01:00
Eduardo Ramos 2b571fd0a8 Fix Issue #488 "Some text appears garbled when loaded from a project file" 2011-12-08 13:40:59 +01:00
Eduardo Ramos e09ca89d8c Make package org.gephi.preview.types.propertyeditors public to fix compilation problem (Issue #489) 2011-12-08 13:14:25 +01:00
Eduardo Ramos cc5dd90fb1 Fix preview properties serialization/deserialization bug that happened when the DesktopPreview propertyeditors were not available. 2011-12-06 13:09:22 +01:00
Eduardo Ramos fecad63ca8 Merge branch 'master' of github.com:gephi/gephi 2011-11-29 00:39:05 +01:00
Eduardo Ramos addbe7427e Fix preview sketch refreshing bug. 2011-11-29 00:36:32 +01:00
Mathieu Bastian c06cdc9cb8 Update MySQL, PostgreSQL and SQLServer JDBC connectors JARs. Add Teradata connector. 2011-11-24 16:01:24 -08:00
Mathieu Bastian d2a4616e4b Bunp Spec version 2011-11-17 08:06:57 -08:00
Mathieu Bastian 6cf099f073 Fix some edge counting issues with self loops and meta edges 2011-11-17 08:03:45 -08:00
Mathieu Bastian fcb4bb2d38 Update API changes 2011-11-13 21:32:54 -08:00
Mathieu Bastian 112353d183 Fix issue #472 2011-11-13 12:53:36 -08:00
Mathieu Bastian 381401b6da Markdown indend 2011-11-12 09:19:10 -08:00
Mathieu Bastian 3f1386b8b2 README iteration 2011-11-12 09:15:54 -08:00
Mathieu Bastian 9c9b757032 Debug README 2011-11-12 09:08:49 -08:00
Mathieu Bastian 6e539063f6 Add README 2011-11-12 09:04:12 -08:00
Mathieu Bastian 8f7ac0a3d4 Increase specification version 2011-11-10 22:49:18 -08:00
Mathieu Bastian a0608782d9 Disable save/load of graph views as it's not clear why it's useful 2011-11-10 22:48:39 -08:00
Mathieu Bastian c7556ec237 Set average degree value in the graph table 2011-11-10 22:48:03 -08:00
Mathieu Bastian b48984429c Debug 2011-11-07 22:17:14 -08:00
Mathieu Bastian b8be2a18ef Minor UI changes 2011-11-07 22:04:06 -08:00
Mathieu Bastian e376b7be0a Fix issue #444 with different AttributeModel instanciated at project loading 2011-11-07 20:06:40 -08:00
Mathieu Bastian 318cd1aff0 Use GraphView instead of Graph for graph table rows 2011-11-07 19:59:47 -08:00
Mathieu Bastian d4045a248b Add a graphTable in Attributes and make Graph an Attributable implementation 2011-11-07 18:37:54 -08:00
Mathieu Bastian 7ec0ea26c9 Fix issue #448, adding DesktopRanking changes 2011-11-07 13:56:26 -08:00
Mathieu Bastian da3d6becda Fix issue #448 2011-11-07 13:55:27 -08:00
Mathieu Bastian f60b8f5b79 Fix exception with Dynamic filter after not initializing the filter in createQuery 2011-11-07 13:53:38 -08:00
Mathieu Bastian 21aaab6564 Fix issue #466 2011-11-06 23:32:11 -08:00
Mathieu Bastian 84a0a0bd70 Avoid NPE on empty octants in ConvexHull 2011-11-06 23:14:48 -08:00
Mathieu Bastian 03742a79ad Fix possible NPE on TextModel 2011-11-06 22:53:04 -08:00
Mathieu Bastian 227cf71d65 Init queries when loading graphs from persistence 2011-11-06 22:08:45 -08:00
Mathieu Bastian 8f9dfd51f3 Fix issue #465 2011-11-06 21:42:24 -08:00
Mathieu Bastian 2cc12551e1 Fix issue #69 by initializing the filters only when adding to the controller 2011-11-06 11:40:00 -08:00
Mathieu Bastian 76bf5497b6 Remove old logging in DesktopFilters 2011-11-06 11:37:12 -08:00
Mathieu Bastian 7609d750a5 Merge branch 'master' of github.com:gephi/gephi 2011-11-06 11:24:27 -08:00
Mathieu Bastian f1f0b77d08 Fix issue 464 2011-11-06 11:22:31 -08:00
Eduardo Ramos ae34e5c7b1 Fix Issue #454 2011-11-06 16:28:57 +01:00
Mathieu Bastian f416287b3a Remove .bzrignore 2011-11-05 16:48:06 -07:00
Mathieu Bastian e8617c4a51 Add nbproject in gitignore 2011-11-03 20:49:30 -07:00
Mathieu Bastian 7a6ef95042 Better way how to manage the custom harness 2011-11-03 20:48:39 -07:00
Mathieu Bastian 5b73b09ea8 Debug the building without Netbeans. Add download-platform task in build.xml to download the latest NBP, including the JUnit lib. 2011-11-03 14:56:34 -07:00
Eduardo Ramos 97fc92ddc5 Disable hack to avoid Outline table visual issues because it breaks filtering and does not always work.
Keep original columns order in Data Laboratory available columns.
2011-11-03 13:49:31 +01:00
Mathieu Bastian 8f21254e8f Add Netbeans Platform harness and platform files to a newly created platform folder. Add default ant target to build gephi without Netbeans. 2011-11-02 23:15:33 -07:00
Mathieu Bastian b6a4df6daf Fix build.xml when offline. Add preview types in Javadoc. 2011-11-02 23:13:50 -07:00
Mathieu Bastian 27325d0eef Add build and dist in gitignore 2011-11-02 23:11:53 -07:00
Mathieu Bastian 9c437b23d8 Add .gitignore 2011-11-02 23:07:29 -07:00
Mathieu Bastian bd33968a3a Apply patch for bug 880601 2011-10-26 08:36:28 -07:00
Mathieu Bastian ad9c1ceebc Fixing bug 878962 2011-10-21 08:44:48 -07:00
Mathieu Bastian e36049ea57 Fix bug 879498 2011-10-21 08:38:21 -07:00
Mathieu Bastian 0411c6d073 Fix bug 879493 2011-10-21 08:22:16 -07:00
Mathieu Bastian 4fc58b8720 Fix PerspectiveMember open/close and better SPI 2011-10-18 18:32:59 -07:00
Cezary Bartosiak 3d1d17fa90 * setting root.max in IntervalTree 2011-10-18 01:44:08 +02:00
Mathieu Bastian d9942ae1ae Dirty hack to fix the bug 873148 2011-10-12 22:28:38 -07:00
Mathieu Bastian 00a4e71545 Add missing unit test dependency in Preview 2011-10-11 22:50:52 -07:00
Eduardo Ramos bfb9e211bf Fix performance issue of XML string date representation. 2011-10-11 20:22:59 +02:00
7714 arquivos alterados com 234805 adições e 212688 exclusões
-10
Ver Arquivo
@@ -1,10 +0,0 @@
**/build
**/nbproject/private
**/nbproject/platform.properties
nbproject/project.properties
**/dist
nbproject/private/platform-private.properties
nbproject/private/profiler/
.DS_Store
toolkit
keystore.ks
+101
Ver Arquivo
@@ -0,0 +1,101 @@
**/target
.DS_Store
keystore.ks
/target/
/modules/AlgorithmsPlugin/target/
/modules/AttributeColumnPropertyEditor/target/
/modules/AttributesAPI/target/
/modules/AttributesImpl/target/
/modules/ClusteringAPI/target/
/modules/ClusteringPlugin/target/
/modules/CollectionUtils/target/
/modules/DataLaboratoryAPI/target/
/modules/DataLaboratoryPlugin/target/
/modules/DesktopClustering/target/
/modules/DBDrivers/target/
/modules/DesktopContext/target/
/modules/DesktopBranding/target/
/modules/DesktopDataLaboratory/target/
/modules/DesktopFilters/target/
/modules/DesktopProgress/target/
/modules/DesktopExport/target/
/modules/DesktopGenerate/target/
/modules/DesktopHierarchy/target/
/modules/DesktopImport/target/
/modules/DesktopLayout/target/
/modules/DesktopPartition/target/
/modules/DesktopPerspective/target/
/modules/DesktopPreview/target/
/modules/DesktopProject/target/
/modules/DesktopRanking/target/
/modules/DesktopRecentFiles/target/
/modules/DesktopSpigot/target/
/modules/DesktopStatistics/target/
/modules/DesktopTimeline/target/
/modules/DesktopTools/target/
/modules/DHNSGraph/target/
/modules/DirectoryChooser/target/
/modules/DynamicAPI/target/
/modules/DynamicImpl/target/
/modules/ExportAPI/target/
/modules/ExportPlugin/target/
/modules/ExportPluginUI/target/
/modules/FiltersAPI/target/
/modules/FiltersImpl/target/
/modules/FiltersPlugin/target/
/modules/FiltersPluginUI/target/
/modules/GeneratorAPI/target/
/modules/GeneratorPlugin/target/
/modules/GeneratorPluginUI/target/
/modules/application/target/
/modules/branding/target/
/modules/Gleem/target/
/modules/GraphAPI/target/
/modules/ImportAPI/target/
/modules/ImportPlugin/target/
/modules/ImportPluginUI/target/
/modules/LayoutAPI/target/
/modules/LayoutPlugin/target/
/modules/LongTaskAPI/target/
/modules/MostRecentFilesAPI/target/
/modules/PartitionAPI/target/
/modules/PartitionPlugin/target/
/modules/PartitionPluginUI/target/
/modules/PerspectiveAPI/target/
/modules/PreviewAPI/target/
/modules/PreviewExport/target/
/modules/PreviewExportUI/target/
/modules/PreviewPlugin/target/
/modules/ProcessorPlugin/target/
/modules/ProcessorPluginUI/target/
/modules/ProjectAPI/target/
/modules/ProjectUI/target/
/modules/RankingAPI/target/
/modules/RankingPlugin/target/
/modules/RankingPluginUI/target/
/modules/SettingsUpgrader/target/
/modules/SpigotPlugin/target/
/modules/SpigotPluginUI/target/
/modules/SplineEditor/target/
/modules/StatisticsAPI/target/
/modules/StatisticsPlugin/target/
/modules/StatisticsPluginUI/target/
/modules/TimelineAPI/target/
/modules/ToolsAPI/target/
/modules/ToolsPlugin/target/
/modules/UIComponents/target/
/modules/UIUtils/target/
/modules/Utils/target/
/modules/ValidationAPI/target/
/modules/VisualizationAPI/target/
/modules/VisualizationImpl/target/
/modules/WelcomeScreen/target/
/modules/WorkspaceUI/target/
/modules/JFreeChartWrapper/target/
/modules/CommonsWrapper/target/
/modules/CoreLibraryWrapper/target/
/modules/UILibraryWrapper/target/
/modules/AppearanceAPI/target/
/modules/AppearancePlugin/target/
/modules/AppearancePluginUI/target/
/modules/DesktopAppearance/target/
+873 -770
Ver Arquivo
Diferenças do arquivo suprimidas por serem muito extensas Carregar Diff
-8
Ver Arquivo
@@ -1,8 +0,0 @@
<?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.algorithms" default="netbeans" basedir=".">
<description>Builds, tests, and runs the project org.gephi.algorithms.</description>
<import file="nbproject/build-impl.xml"/>
</project>
-5
Ver Arquivo
@@ -1,5 +0,0 @@
Manifest-Version: 1.0
AutoUpdate-Essential-Module: true
OpenIDE-Module: org.gephi.algorithms
OpenIDE-Module-Localizing-Bundle: org/gephi/algorithms/Bundle.properties
OpenIDE-Module-Specification-Version: 0.8
-45
Ver Arquivo
@@ -1,45 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
*** GENERATED FROM project.xml - DO NOT EDIT ***
*** EDIT ../build.xml INSTEAD ***
-->
<project name="org.gephi.algorithms-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>
-8
Ver Arquivo
@@ -1,8 +0,0 @@
build.xml.data.CRC32=7a62de64
build.xml.script.CRC32=cf335b84
build.xml.stylesheet.CRC32=a56c6a5b@1.42.2
# 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=7a62de64
nbproject/build-impl.xml.script.CRC32=7f9d9135
nbproject/build-impl.xml.stylesheet.CRC32=238281d1@1.42.2
-6
Ver Arquivo
@@ -1,6 +0,0 @@
javac.source=1.5
javac.compilerargs=-Xlint -Xlint:-serial
keystore=nbproject/private/keystore.ks
license.file=../gpl-3.0.txt
nbm.module.author=Gephi.org
nbm_alias=gephi
-55
Ver Arquivo
@@ -1,55 +0,0 @@
<?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.algorithms</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.7.1.1</specification-version>
</run-dependency>
</dependency>
<dependency>
<code-name-base>org.gephi.dynamic.api</code-name-base>
<build-prerequisite/>
<compile-dependency/>
<run-dependency>
<specification-version>0.7.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.7</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.7.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.3.1</specification-version>
</run-dependency>
</dependency>
</module-dependencies>
<public-packages>
<package>org.gephi.algorithms.shortestpath</package>
</public-packages>
</data>
</configuration>
</project>
-1
Ver Arquivo
@@ -1 +0,0 @@
suite.dir=${basedir}/..
@@ -1,11 +0,0 @@
# Translation file for Gephi.
# Copyright (C) 2011 Gephi contributors.
# This file is distributed under the same license as the Gephi package.
#
# Translators:
# FIRST AUTHOR <EMAIL@ADDRESS>, 2010.
!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://bugs.launchpad.net/gephi\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2011-08-06 14\:30+0000\nLast-Translator\: gephi <sebastien.heymann@gmail.com>\nLanguage-Team\: Spanish (Castilian) (http\://www.transifex.net/projects/p/gephi/team/es/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: es\nPlural-Forms\: nplurals\=2; plural\=(n \!\= 1)\n
OpenIDE-Module-Long-Description=Algoritmos b\u00e1sicos de la teor\u00eda de grafos
OpenIDE-Module-Short-Description=Algoritmos b\u00e1sicos de la teor\u00eda de grafos
@@ -1,11 +0,0 @@
# Translation file for Gephi.
# Copyright (C) 2011 Gephi contributors.
# This file is distributed under the same license as the Gephi package.
#
# Translators:
# FIRST AUTHOR <EMAIL@ADDRESS>, 2010.
!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://bugs.launchpad.net/gephi\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2011-08-06 14\:30+0000\nLast-Translator\: gephi <sebastien.heymann@gmail.com>\nLanguage-Team\: French (http\://www.transifex.net/projects/p/gephi/team/fr/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: fr\nPlural-Forms\: nplurals\=2; plural\=(n > 1)\n
OpenIDE-Module-Long-Description=Algorithmes de base en th\u00e9orie des graphes
OpenIDE-Module-Short-Description=Algorithmes de base en th\u00e9orie des graphes
@@ -1,11 +0,0 @@
# Translation file for Gephi.
# Copyright (C) 2011 Gephi contributors.
# This file is distributed under the same license as the Gephi package.
#
# Translators:
# Siro Kida <kida.siro@gmail.com>, 2011.
!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://bugs.launchpad.net/gephi\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2011-08-11 00\:30+0000\nLast-Translator\: sarang <kida.siro@gmail.com>\nLanguage-Team\: Japanese (http\://www.transifex.net/projects/p/gephi/team/ja/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: ja\nPlural-Forms\: nplurals\=1; plural\=0\n
OpenIDE-Module-Long-Description=\u57fa\u790e\u30b0\u30e9\u30d5\u7406\u8ad6\u30a2\u30eb\u30b4\u30ea\u30ba\u30e0
OpenIDE-Module-Short-Description=\u57fa\u790e\u30b0\u30e9\u30d5\u7406\u8ad6\u30a2\u30eb\u30b4\u30ea\u30ba\u30e0
@@ -1,11 +0,0 @@
# Translation file for Gephi.
# Copyright (C) 2011 Gephi contributors.
# This file is distributed under the same license as the Gephi package.
#
# Translators:
# C\u00e9lio CJr <celiofariajr@gmail.com>, 2011.
!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://bugs.launchpad.net/gephi\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2011-08-06 23\:22+0000\nLast-Translator\: celiofariajr <celiofariajr@gmail.com>\nLanguage-Team\: Portuguese (Brazilian) (http\://www.transifex.net/projects/p/gephi/team/pt_BR/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: pt_BR\nPlural-Forms\: nplurals\=2; plural\=(n > 1)\n
OpenIDE-Module-Long-Description=Algoritmos b\u00e1sicos de teoria de grafos
OpenIDE-Module-Short-Description=Algoritmos b\u00e1sicos de teoria de grafos
@@ -1,10 +0,0 @@
# Russian translation for gephi
# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010
# This file is distributed under the same license as the gephi package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2010.
#
!=Project-Id-Version\: gephi\nReport-Msgid-Bugs-To\: FULL NAME <EMAIL@ADDRESS>\nPOT-Creation-Date\: 2010-04-07 13\:16+0200\nPO-Revision-Date\: 2010-11-30 21\:40+0000\nLast-Translator\: Altsoph <Unknown>\nLanguage-Team\: Russian <ru@li.org>\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nX-Launchpad-Export-Date\: 2011-03-13 04\:46+0000\nX-Generator\: Launchpad (build 12559)\n
OpenIDE-Module-Long-Description=\u0411\u0430\u0437\u043e\u0432\u044b\u0435 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u044b \u0442\u0435\u043e\u0440\u0438\u0438 \u0433\u0440\u0430\u0444\u043e\u0432
OpenIDE-Module-Short-Description=\u0411\u0430\u0437\u043e\u0432\u044b\u0435 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u044b \u0442\u0435\u043e\u0440\u0438\u0438 \u0433\u0440\u0430\u0444\u043e\u0432
-27
Ver Arquivo
@@ -1,27 +0,0 @@
# Translation file for Gephi.
# Copyright (C) 2011 Gephi contributors.
# This file is distributed under the same license as the Gephi package.
#
# Translators:
# FIRST AUTHOR <EMAIL@ADDRESS>, 2010.
msgid ""
msgstr ""
"Project-Id-Version: Gephi\n"
"Report-Msgid-Bugs-To: https://bugs.launchpad.net/gephi\n"
"POT-Creation-Date: 2011-08-05 14:52+0200\n"
"PO-Revision-Date: 2011-08-06 14:30+0000\n"
"Last-Translator: gephi <sebastien.heymann@gmail.com>\n"
"Language-Team: Spanish (Castilian) (http://www.transifex.net/projects/p/gephi/team/es/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: es\n"
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
msgid "OpenIDE-Module-Long-Description"
msgstr "Algoritmos básicos de la teoría de grafos"
msgid "OpenIDE-Module-Short-Description"
msgstr "Algoritmos básicos de la teoría de grafos"
-27
Ver Arquivo
@@ -1,27 +0,0 @@
# Translation file for Gephi.
# Copyright (C) 2011 Gephi contributors.
# This file is distributed under the same license as the Gephi package.
#
# Translators:
# FIRST AUTHOR <EMAIL@ADDRESS>, 2010.
msgid ""
msgstr ""
"Project-Id-Version: Gephi\n"
"Report-Msgid-Bugs-To: https://bugs.launchpad.net/gephi\n"
"POT-Creation-Date: 2011-08-05 14:52+0200\n"
"PO-Revision-Date: 2011-08-06 14:30+0000\n"
"Last-Translator: gephi <sebastien.heymann@gmail.com>\n"
"Language-Team: French (http://www.transifex.net/projects/p/gephi/team/fr/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: fr\n"
"Plural-Forms: nplurals=2; plural=(n > 1)\n"
msgid "OpenIDE-Module-Long-Description"
msgstr "Algorithmes de base en théorie des graphes"
msgid "OpenIDE-Module-Short-Description"
msgstr "Algorithmes de base en théorie des graphes"
-27
Ver Arquivo
@@ -1,27 +0,0 @@
# Translation file for Gephi.
# Copyright (C) 2011 Gephi contributors.
# This file is distributed under the same license as the Gephi package.
#
# Translators:
# Siro Kida <kida.siro@gmail.com>, 2011.
msgid ""
msgstr ""
"Project-Id-Version: Gephi\n"
"Report-Msgid-Bugs-To: https://bugs.launchpad.net/gephi\n"
"POT-Creation-Date: 2011-08-05 14:52+0200\n"
"PO-Revision-Date: 2011-08-11 00:30+0000\n"
"Last-Translator: sarang <kida.siro@gmail.com>\n"
"Language-Team: Japanese (http://www.transifex.net/projects/p/gephi/team/ja/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: ja\n"
"Plural-Forms: nplurals=1; plural=0\n"
msgid "OpenIDE-Module-Long-Description"
msgstr "基礎グラフ理論アルゴリズム"
msgid "OpenIDE-Module-Short-Description"
msgstr "基礎グラフ理論アルゴリズム"
-27
Ver Arquivo
@@ -1,27 +0,0 @@
# Translation file for Gephi.
# Copyright (C) 2011 Gephi contributors.
# This file is distributed under the same license as the Gephi package.
#
# Translators:
# Célio CJr <celiofariajr@gmail.com>, 2011.
msgid ""
msgstr ""
"Project-Id-Version: Gephi\n"
"Report-Msgid-Bugs-To: https://bugs.launchpad.net/gephi\n"
"POT-Creation-Date: 2011-08-05 14:52+0200\n"
"PO-Revision-Date: 2011-08-06 23:22+0000\n"
"Last-Translator: celiofariajr <celiofariajr@gmail.com>\n"
"Language-Team: Portuguese (Brazilian) (http://www.transifex.net/projects/p/gephi/team/pt_BR/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: pt_BR\n"
"Plural-Forms: nplurals=2; plural=(n > 1)\n"
msgid "OpenIDE-Module-Long-Description"
msgstr "Algoritmos básicos de teoria de grafos "
msgid "OpenIDE-Module-Short-Description"
msgstr "Algoritmos básicos de teoria de grafos "
@@ -1,100 +0,0 @@
/*
Copyright 2008-2010 Gephi
Authors : Mathieu Bastian <mathieu.bastian@gephi.org>
Website : http://www.gephi.org
This file is part of Gephi.
DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
Copyright 2011 Gephi Consortium. All rights reserved.
The contents of this file are subject to the terms of either the GNU
General Public License Version 3 only ("GPL") or the Common
Development and Distribution License("CDDL") (collectively, the
"License"). You may not use this file except in compliance with the
License. You can obtain a copy of the License at
http://gephi.org/about/legal/license-notice/
or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the
specific language governing permissions and limitations under the
License. When distributing the software, include this License Header
Notice in each file and include the License files at
/cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the
License Header, with the fields enclosed by brackets [] replaced by
your own identifying information:
"Portions Copyrighted [year] [name of copyright owner]"
If you wish your version of this file to be governed by only the CDDL
or only the GPL Version 3, indicate your decision by adding
"[Contributor] elects to include this software in this distribution
under the [CDDL or GPL Version 3] license." If you do not indicate a
single choice of license, a recipient has the option to distribute
your version of this file under either the CDDL, the GPL Version 3 or
to extend the choice of license to its licensees as provided above.
However, if you add GPL Version 3 code and therefore, elected the GPL
Version 3 license, then the option applies only if the new code is
made subject to such option by the copyright holder.
Contributor(s):
Portions Copyrighted 2011 Gephi Consortium.
*/
package org.gephi.algorithms.shortestpath;
import java.awt.Color;
import java.util.HashMap;
import org.gephi.graph.api.Edge;
import org.gephi.graph.api.Node;
/**
*
* @author Mathieu Bastian
*/
public abstract class AbstractShortestPathAlgorithm {
protected final HashMap<Node, Color> colors;
protected final HashMap<Node, Double> distances;
protected final Node sourceNode;
protected double maxDistance = 0;
public AbstractShortestPathAlgorithm(Node sourceNode) {
this.sourceNode = sourceNode;
colors = new HashMap<Node, Color>();
distances = new HashMap<Node, Double>();
}
protected boolean relax(Edge edge) {
Node source = edge.getSource();
Node target = edge.getTarget();
double distSource = distances.get(source);
double distTarget = distances.get(target);
double weight = edgeWeight(edge);
double sourceWeight = distSource + weight;
if (sourceWeight < distTarget) {
distances.put(target, sourceWeight);
maxDistance = Math.max(maxDistance, sourceWeight);
return true;
} else {
return false;
}
}
protected double edgeWeight(Edge edge) {
return edge.getWeight();
}
public abstract void compute();
public abstract Node getPredecessor(Node node);
public abstract Edge getPredecessorIncoming(Node node);
public HashMap<Node, Double> getDistances() {
return distances;
}
public double getMaxDistance() {
return maxDistance;
}
}
@@ -1,137 +0,0 @@
/*
Copyright 2008-2010 Gephi
Authors : Mathieu Bastian <mathieu.bastian@gephi.org>
Website : http://www.gephi.org
This file is part of Gephi.
DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
Copyright 2011 Gephi Consortium. All rights reserved.
The contents of this file are subject to the terms of either the GNU
General Public License Version 3 only ("GPL") or the Common
Development and Distribution License("CDDL") (collectively, the
"License"). You may not use this file except in compliance with the
License. You can obtain a copy of the License at
http://gephi.org/about/legal/license-notice/
or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the
specific language governing permissions and limitations under the
License. When distributing the software, include this License Header
Notice in each file and include the License files at
/cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the
License Header, with the fields enclosed by brackets [] replaced by
your own identifying information:
"Portions Copyrighted [year] [name of copyright owner]"
If you wish your version of this file to be governed by only the CDDL
or only the GPL Version 3, indicate your decision by adding
"[Contributor] elects to include this software in this distribution
under the [CDDL or GPL Version 3] license." If you do not indicate a
single choice of license, a recipient has the option to distribute
your version of this file under either the CDDL, the GPL Version 3 or
to extend the choice of license to its licensees as provided above.
However, if you add GPL Version 3 code and therefore, elected the GPL
Version 3 license, then the option applies only if the new code is
made subject to such option by the copyright holder.
Contributor(s):
Portions Copyrighted 2011 Gephi Consortium.
*/
package org.gephi.algorithms.shortestpath;
import java.util.HashMap;
import org.gephi.data.attributes.type.TimeInterval;
import org.gephi.dynamic.DynamicUtilities;
import org.gephi.dynamic.api.DynamicController;
import org.gephi.graph.api.DirectedGraph;
import org.gephi.graph.api.Edge;
import org.gephi.graph.api.Node;
import org.openide.util.Lookup;
/**
*
* @author Mathieu Bastian
*/
public class BellmanFordShortestPathAlgorithm extends AbstractShortestPathAlgorithm {
protected final DirectedGraph graph;
protected final HashMap<Node, Edge> predecessors;
protected TimeInterval timeInterval;
public BellmanFordShortestPathAlgorithm(DirectedGraph graph, Node sourceNode) {
super(sourceNode);
this.graph = graph;
predecessors = new HashMap<Node, Edge>();
DynamicController dynamicController = Lookup.getDefault().lookup(DynamicController.class);
if (dynamicController != null) {
timeInterval = DynamicUtilities.getVisibleInterval(dynamicController.getModel(graph.getGraphModel().getWorkspace()));
}
}
public void compute() {
graph.readLock();
//Initialize
int nodeCount = 0;
for (Node node : graph.getNodes()) {
distances.put(node, Double.POSITIVE_INFINITY);
nodeCount++;
}
distances.put(sourceNode, 0d);
//Relax edges repeatedly
for (int i = 0; i < nodeCount; i++) {
boolean relaxed = false;
for (Edge edge : graph.getEdges()) {
Node target = edge.getTarget();
if (relax(edge)) {
relaxed = true;
predecessors.put(target, edge);
}
}
if (!relaxed) {
break;
}
}
//Check for negative-weight cycles
for (Edge edge : graph.getEdges()) {
if (distances.get(edge.getSource()) + edgeWeight(edge) < distances.get(edge.getTarget())) {
graph.readUnlock();
throw new RuntimeException("The Graph contains a negative-weighted cycle");
}
}
graph.readUnlock();
}
@Override
protected double edgeWeight(Edge edge) {
if (timeInterval != null) {
return edge.getWeight(timeInterval.getLow(), timeInterval.getHigh());
}
return edge.getWeight();
}
public Node getPredecessor(Node node) {
Edge edge = predecessors.get(node);
if (edge != null) {
if (edge.getSource() != node) {
return edge.getSource();
} else {
return edge.getTarget();
}
}
return null;
}
public Edge getPredecessorIncoming(Node node) {
return predecessors.get(node);
}
}
@@ -1,147 +0,0 @@
/*
Copyright 2008-2010 Gephi
Authors : Mathieu Bastian <mathieu.bastian@gephi.org>
Website : http://www.gephi.org
This file is part of Gephi.
DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
Copyright 2011 Gephi Consortium. All rights reserved.
The contents of this file are subject to the terms of either the GNU
General Public License Version 3 only ("GPL") or the Common
Development and Distribution License("CDDL") (collectively, the
"License"). You may not use this file except in compliance with the
License. You can obtain a copy of the License at
http://gephi.org/about/legal/license-notice/
or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the
specific language governing permissions and limitations under the
License. When distributing the software, include this License Header
Notice in each file and include the License files at
/cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the
License Header, with the fields enclosed by brackets [] replaced by
your own identifying information:
"Portions Copyrighted [year] [name of copyright owner]"
If you wish your version of this file to be governed by only the CDDL
or only the GPL Version 3, indicate your decision by adding
"[Contributor] elects to include this software in this distribution
under the [CDDL or GPL Version 3] license." If you do not indicate a
single choice of license, a recipient has the option to distribute
your version of this file under either the CDDL, the GPL Version 3 or
to extend the choice of license to its licensees as provided above.
However, if you add GPL Version 3 code and therefore, elected the GPL
Version 3 license, then the option applies only if the new code is
made subject to such option by the copyright holder.
Contributor(s):
Portions Copyrighted 2011 Gephi Consortium.
*/
package org.gephi.algorithms.shortestpath;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Set;
import org.gephi.data.attributes.type.TimeInterval;
import org.gephi.dynamic.DynamicUtilities;
import org.gephi.dynamic.api.DynamicController;
import org.gephi.graph.api.Edge;
import org.gephi.graph.api.Graph;
import org.gephi.graph.api.Node;
import org.openide.util.Lookup;
/**
*
* @author Mathieu Bastian
*/
public class DijkstraShortestPathAlgorithm extends AbstractShortestPathAlgorithm {
protected final Graph graph;
protected final HashMap<Node, Edge> predecessors;
protected TimeInterval timeInterval;
public DijkstraShortestPathAlgorithm(Graph graph, Node sourceNode) {
super(sourceNode);
this.graph = graph;
predecessors = new HashMap<Node, Edge>();
DynamicController dynamicController = Lookup.getDefault().lookup(DynamicController.class);
if (dynamicController != null) {
timeInterval = DynamicUtilities.getVisibleInterval(dynamicController.getModel(graph.getGraphModel().getWorkspace()));
}
}
public void compute() {
graph.readLock();
Set<Node> nodes = new HashSet<Node>();
//Initialize
int nodeCount = 0;
for (Node node : graph.getNodes()) {
distances.put(node, Double.POSITIVE_INFINITY);
nodes.add(node);
nodeCount++;
}
distances.put(sourceNode, 0d);
while (!nodes.isEmpty()) {
// find node with smallest distance value
Double minDistance = Double.POSITIVE_INFINITY;
Node minDistanceNode = null;
for (Node k : nodes) {
Double dist = distances.get(k);
if (dist.compareTo(minDistance) < 0) {
minDistance = dist;
minDistanceNode = k;
}
}
Node currentNode = minDistanceNode;
nodes.remove(currentNode);
for (Edge edge : graph.getEdges(currentNode)) {
Node neighbor = graph.getOpposite(currentNode, edge);
double dist = edgeWeight(edge) + distances.get(currentNode);
if (distances.get(neighbor).equals(Double.POSITIVE_INFINITY)) {
distances.put(neighbor, dist);
maxDistance = Math.max(maxDistance, dist);
predecessors.put(neighbor, edge);
} else {
if (dist < distances.get(neighbor)) {
distances.put(neighbor, dist);
maxDistance = Math.max(maxDistance, dist);
predecessors.put(neighbor, edge);
}
}
}
}
graph.readUnlock();
}
@Override
protected double edgeWeight(Edge edge) {
if (timeInterval != null) {
return edge.getWeight(timeInterval.getLow(), timeInterval.getHigh());
}
return edge.getWeight();
}
public Node getPredecessor(Node node) {
Edge edge = predecessors.get(node);
if (edge != null) {
if (edge.getSource() != node) {
return edge.getSource();
} else {
return edge.getTarget();
}
}
return null;
}
public Edge getPredecessorIncoming(Node node) {
return predecessors.get(node);
}
}
-8
Ver Arquivo
@@ -1,8 +0,0 @@
<?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.ui.propertyeditor" default="netbeans" basedir=".">
<description>Builds, tests, and runs the project org.gephi.ui.propertyeditor.</description>
<import file="nbproject/build-impl.xml"/>
</project>
-6
Ver Arquivo
@@ -1,6 +0,0 @@
Manifest-Version: 1.0
AutoUpdate-Essential-Module: true
OpenIDE-Module: org.gephi.ui.propertyeditor
OpenIDE-Module-Localizing-Bundle: org/gephi/ui/propertyeditor/Bundle.properties
OpenIDE-Module-Specification-Version: 0.8
@@ -1,45 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
*** GENERATED FROM project.xml - DO NOT EDIT ***
*** EDIT ../build.xml INSTEAD ***
-->
<project name="org.gephi.ui.propertyeditor-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>
@@ -1,8 +0,0 @@
build.xml.data.CRC32=b90a9a84
build.xml.script.CRC32=fee76ed2
build.xml.stylesheet.CRC32=a56c6a5b@1.42.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=b90a9a84
nbproject/build-impl.xml.script.CRC32=3fb6a735
nbproject/build-impl.xml.stylesheet.CRC32=238281d1@1.42.1
@@ -1,6 +0,0 @@
javac.source=1.5
javac.compilerargs=-Xlint -Xlint:-serial
keystore=nbproject/private/keystore.ks
license.file=../gpl-3.0.txt
nbm.module.author=Gephi.org
nbm_alias=gephi
@@ -1,39 +0,0 @@
<?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.ui.propertyeditor</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.7</specification-version>
</run-dependency>
</dependency>
<dependency>
<code-name-base>org.openide.util</code-name-base>
<build-prerequisite/>
<compile-dependency/>
<run-dependency>
<specification-version>8.6.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.3.1</specification-version>
</run-dependency>
</dependency>
</module-dependencies>
<public-packages>
<package>org.gephi.ui.propertyeditor</package>
</public-packages>
</data>
</configuration>
</project>
@@ -1 +0,0 @@
suite.dir=${basedir}/..
@@ -1,11 +0,0 @@
# Translation file for Gephi.
# Copyright (C) 2011 Gephi contributors.
# This file is distributed under the same license as the Gephi package.
#
# Translators:
# FIRST AUTHOR <EMAIL@ADDRESS>, 2010.
!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://bugs.launchpad.net/gephi\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2011-08-06 14\:30+0000\nLast-Translator\: gephi <sebastien.heymann@gmail.com>\nLanguage-Team\: Spanish (Castilian) (http\://www.transifex.net/projects/p/gephi/team/es/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: es\nPlural-Forms\: nplurals\=2; plural\=(n \!\= 1)\n
OpenIDE-Module-Long-Description=Estos editores de propiedades pueden ser utilizados para mostrar un combobox con las columnas actuales en un PropertySheet.
OpenIDE-Module-Short-Description=Proporcionar la clase PropertyEditor para las propiedades de AttributeColumn
@@ -1,11 +0,0 @@
# Translation file for Gephi.
# Copyright (C) 2011 Gephi contributors.
# This file is distributed under the same license as the Gephi package.
#
# Translators:
# FIRST AUTHOR <EMAIL@ADDRESS>, 2010.
!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://bugs.launchpad.net/gephi\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2011-08-06 14\:30+0000\nLast-Translator\: gephi <sebastien.heymann@gmail.com>\nLanguage-Team\: French (http\://www.transifex.net/projects/p/gephi/team/fr/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: fr\nPlural-Forms\: nplurals\=2; plural\=(n > 1)\n
OpenIDE-Module-Long-Description=Ces \u00e9diteurs de propri\u00e9t\u00e9 sont utilisables pour afficher une combobox avec les colonnes courantes dans un PropertySheet.
OpenIDE-Module-Short-Description=Fournit la classe PropertyEditor pour les propri\u00e9t\u00e9s de AttributeColumn
@@ -1,11 +0,0 @@
# Translation file for Gephi.
# Copyright (C) 2011 Gephi contributors.
# This file is distributed under the same license as the Gephi package.
#
# Translators:
# Siro Kida <kida.siro@gmail.com>, 2011.
!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://bugs.launchpad.net/gephi\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2011-08-18 10\:40+0000\nLast-Translator\: sarang <kida.siro@gmail.com>\nLanguage-Team\: Japanese (http\://www.transifex.net/projects/p/gephi/team/ja/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: ja\nPlural-Forms\: nplurals\=1; plural\=0\n
OpenIDE-Module-Long-Description=\u3053\u308c\u3089\u306e\u30d7\u30ed\u30d1\u30c6\u30a3\u30a8\u30c7\u30a3\u30bf\u306f\u3001\u30d7\u30ed\u30d1\u30c6\u30a3\u30b7\u30fc\u30c8\u3067\u3001\u73fe\u5728\u306e\u5217\u3092\u6301\u3064\u30b3\u30f3\u30dc\u30dc\u30c3\u30af\u30b9\u3092\u8868\u793a\u3059\u308b\u305f\u3081\u306b\u4f7f\u7528\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002
OpenIDE-Module-Short-Description=AttributeColumn\u306e\u30d7\u30ed\u30d1\u30c6\u30a3\u306ePropertyEditor\u30af\u30e9\u30b9\u3092\u63d0\u4f9b\u3059\u308b
@@ -1,11 +0,0 @@
# Translation file for Gephi.
# Copyright (C) 2011 Gephi contributors.
# This file is distributed under the same license as the Gephi package.
#
# Translators:
# C\u00e9lio CJr <celiofariajr@gmail.com>, 2011.
!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://bugs.launchpad.net/gephi\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2011-08-06 23\:31+0000\nLast-Translator\: celiofariajr <celiofariajr@gmail.com>\nLanguage-Team\: Portuguese (Brazilian) (http\://www.transifex.net/projects/p/gephi/team/pt_BR/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: pt_BR\nPlural-Forms\: nplurals\=2; plural\=(n > 1)\n
OpenIDE-Module-Long-Description=Estes editores de propriedades pode ser usados para exibir um combobox com as colunas atuais em uma PropertySheet.
OpenIDE-Module-Short-Description=Fornece classe PropertyEditor para propriedades do tipo AttributeColumn
@@ -1,30 +0,0 @@
# Translation file for Gephi.
# Copyright (C) 2011 Gephi contributors.
# This file is distributed under the same license as the Gephi package.
#
# Translators:
# FIRST AUTHOR <EMAIL@ADDRESS>, 2010.
msgid ""
msgstr ""
"Project-Id-Version: Gephi\n"
"Report-Msgid-Bugs-To: https://bugs.launchpad.net/gephi\n"
"POT-Creation-Date: 2011-08-05 14:52+0200\n"
"PO-Revision-Date: 2011-08-06 14:30+0000\n"
"Last-Translator: gephi <sebastien.heymann@gmail.com>\n"
"Language-Team: Spanish (Castilian) (http://www.transifex.net/projects/p/gephi/team/es/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: es\n"
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
msgid "OpenIDE-Module-Long-Description"
msgstr ""
"Estos editores de propiedades pueden ser utilizados para mostrar un combobox"
" con las columnas actuales en un PropertySheet."
msgid "OpenIDE-Module-Short-Description"
msgstr ""
"Proporcionar la clase PropertyEditor para las propiedades de AttributeColumn"
@@ -1,30 +0,0 @@
# Translation file for Gephi.
# Copyright (C) 2011 Gephi contributors.
# This file is distributed under the same license as the Gephi package.
#
# Translators:
# FIRST AUTHOR <EMAIL@ADDRESS>, 2010.
msgid ""
msgstr ""
"Project-Id-Version: Gephi\n"
"Report-Msgid-Bugs-To: https://bugs.launchpad.net/gephi\n"
"POT-Creation-Date: 2011-08-05 14:52+0200\n"
"PO-Revision-Date: 2011-08-06 14:30+0000\n"
"Last-Translator: gephi <sebastien.heymann@gmail.com>\n"
"Language-Team: French (http://www.transifex.net/projects/p/gephi/team/fr/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: fr\n"
"Plural-Forms: nplurals=2; plural=(n > 1)\n"
msgid "OpenIDE-Module-Long-Description"
msgstr ""
"Ces éditeurs de propriété sont utilisables pour afficher une combobox avec "
"les colonnes courantes dans un PropertySheet."
msgid "OpenIDE-Module-Short-Description"
msgstr ""
"Fournit la classe PropertyEditor pour les propriétés de AttributeColumn"
@@ -1,27 +0,0 @@
# Translation file for Gephi.
# Copyright (C) 2011 Gephi contributors.
# This file is distributed under the same license as the Gephi package.
#
# Translators:
# Siro Kida <kida.siro@gmail.com>, 2011.
msgid ""
msgstr ""
"Project-Id-Version: Gephi\n"
"Report-Msgid-Bugs-To: https://bugs.launchpad.net/gephi\n"
"POT-Creation-Date: 2011-08-05 14:52+0200\n"
"PO-Revision-Date: 2011-08-18 10:40+0000\n"
"Last-Translator: sarang <kida.siro@gmail.com>\n"
"Language-Team: Japanese (http://www.transifex.net/projects/p/gephi/team/ja/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: ja\n"
"Plural-Forms: nplurals=1; plural=0\n"
msgid "OpenIDE-Module-Long-Description"
msgstr "これらのプロパティエディタは、プロパティシートで、現在の列を持つコンボボックスを表示するために使用することができます。"
msgid "OpenIDE-Module-Short-Description"
msgstr "AttributeColumnのプロパティのPropertyEditorクラスを提供する"
@@ -1,30 +0,0 @@
# Translation file for Gephi.
# Copyright (C) 2011 Gephi contributors.
# This file is distributed under the same license as the Gephi package.
#
# Translators:
# Célio CJr <celiofariajr@gmail.com>, 2011.
msgid ""
msgstr ""
"Project-Id-Version: Gephi\n"
"Report-Msgid-Bugs-To: https://bugs.launchpad.net/gephi\n"
"POT-Creation-Date: 2011-08-05 14:52+0200\n"
"PO-Revision-Date: 2011-08-06 23:31+0000\n"
"Last-Translator: celiofariajr <celiofariajr@gmail.com>\n"
"Language-Team: Portuguese (Brazilian) (http://www.transifex.net/projects/p/gephi/team/pt_BR/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: pt_BR\n"
"Plural-Forms: nplurals=2; plural=(n > 1)\n"
msgid "OpenIDE-Module-Long-Description"
msgstr ""
"Estes editores de propriedades pode ser usados para exibir um combobox com "
"as colunas atuais em uma PropertySheet."
msgid "OpenIDE-Module-Short-Description"
msgstr ""
"Fornece classe PropertyEditor para propriedades do tipo AttributeColumn "
-8
Ver Arquivo
@@ -1,8 +0,0 @@
<?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.data.attributes.api" default="netbeans" basedir=".">
<description>Builds, tests, and runs the project org.gephi.data.attributes.api.</description>
<import file="nbproject/build-impl.xml"/>
</project>
-5
Ver Arquivo
@@ -1,5 +0,0 @@
Manifest-Version: 1.0
OpenIDE-Module: org.gephi.data.attributes.api
OpenIDE-Module-Localizing-Bundle: org/gephi/data/attributes/api/Bundle.properties
OpenIDE-Module-Specification-Version: 0.8.0.2
AutoUpdate-Essential-Module: true
-45
Ver Arquivo
@@ -1,45 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
*** GENERATED FROM project.xml - DO NOT EDIT ***
*** EDIT ../build.xml INSTEAD ***
-->
<project name="org.gephi.data.attributes.api-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>
@@ -1,6 +0,0 @@
build.xml.data.CRC32=1965fabe
build.xml.script.CRC32=3725a65f
build.xml.stylesheet.CRC32=a56c6a5b@1.42.2
nbproject/build-impl.xml.data.CRC32=1965fabe
nbproject/build-impl.xml.script.CRC32=24a2766f
nbproject/build-impl.xml.stylesheet.CRC32=238281d1@1.42.2
-6
Ver Arquivo
@@ -1,6 +0,0 @@
javac.source=1.5
javac.compilerargs=-Xlint -Xlint:-serial
keystore=nbproject/private/keystore.ks
license.file=../gpl-3.0.txt
nbm.module.author=Gephi.org
nbm_alias=gephi
-59
Ver Arquivo
@@ -1,59 +0,0 @@
<?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.data.attributes.api</code-name-base>
<suite-component/>
<module-dependencies>
<dependency>
<code-name-base>org.gephi.graph.api</code-name-base>
<build-prerequisite/>
<compile-dependency/>
<run-dependency>
<specification-version>0.7</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.7.0.5</specification-version>
</run-dependency>
</dependency>
<dependency>
<code-name-base>org.openide.util</code-name-base>
<build-prerequisite/>
<compile-dependency/>
<run-dependency>
<specification-version>7.31.2.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.3.1</specification-version>
</run-dependency>
</dependency>
</module-dependencies>
<test-dependencies>
<test-type>
<name>unit</name>
<test-dependency>
<code-name-base>org.netbeans.libs.junit4</code-name-base>
<compile-dependency/>
</test-dependency>
</test-type>
</test-dependencies>
<public-packages>
<package>org.gephi.data.attributes.api</package>
<package>org.gephi.data.attributes.spi</package>
<package>org.gephi.data.attributes.type</package>
<package>org.gephi.data.properties</package>
</public-packages>
</data>
</configuration>
</project>
-1
Ver Arquivo
@@ -1 +0,0 @@
suite.dir=${basedir}/..
@@ -1,595 +0,0 @@
/*
Copyright 2008-2010 Gephi
Authors : Mathieu Bastian <mathieu.bastian@gephi.org>, Martin Škurla, Cezary Bartosiak
Website : http://www.gephi.org
This file is part of Gephi.
DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
Copyright 2011 Gephi Consortium. All rights reserved.
The contents of this file are subject to the terms of either the GNU
General Public License Version 3 only ("GPL") or the Common
Development and Distribution License("CDDL") (collectively, the
"License"). You may not use this file except in compliance with the
License. You can obtain a copy of the License at
http://gephi.org/about/legal/license-notice/
or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the
specific language governing permissions and limitations under the
License. When distributing the software, include this License Header
Notice in each file and include the License files at
/cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the
License Header, with the fields enclosed by brackets [] replaced by
your own identifying information:
"Portions Copyrighted [year] [name of copyright owner]"
If you wish your version of this file to be governed by only the CDDL
or only the GPL Version 3, indicate your decision by adding
"[Contributor] elects to include this software in this distribution
under the [CDDL or GPL Version 3] license." If you do not indicate a
single choice of license, a recipient has the option to distribute
your version of this file under either the CDDL, the GPL Version 3 or
to extend the choice of license to its licensees as provided above.
However, if you add GPL Version 3 code and therefore, elected the GPL
Version 3 license, then the option applies only if the new code is
made subject to such option by the copyright holder.
Contributor(s):
Portions Copyrighted 2011 Gephi Consortium.
*/
package org.gephi.data.attributes.api;
import java.math.BigInteger;
import java.math.BigDecimal;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
import java.util.regex.Pattern;
import org.gephi.data.attributes.type.DynamicByte;
import org.gephi.data.attributes.type.DynamicShort;
import org.gephi.data.attributes.type.DynamicInteger;
import org.gephi.data.attributes.type.DynamicLong;
import org.gephi.data.attributes.type.DynamicFloat;
import org.gephi.data.attributes.type.DynamicDouble;
import org.gephi.data.attributes.type.DynamicBoolean;
import org.gephi.data.attributes.type.DynamicCharacter;
import org.gephi.data.attributes.type.DynamicString;
import org.gephi.data.attributes.type.DynamicBigInteger;
import org.gephi.data.attributes.type.DynamicBigDecimal;
import org.gephi.data.attributes.type.TimeInterval;
import org.gephi.data.attributes.type.ByteList;
import org.gephi.data.attributes.type.ShortList;
import org.gephi.data.attributes.type.IntegerList;
import org.gephi.data.attributes.type.LongList;
import org.gephi.data.attributes.type.FloatList;
import org.gephi.data.attributes.type.DoubleList;
import org.gephi.data.attributes.type.BooleanList;
import org.gephi.data.attributes.type.CharacterList;
import org.gephi.data.attributes.type.StringList;
import org.gephi.data.attributes.type.BigIntegerList;
import org.gephi.data.attributes.type.BigDecimalList;
import org.gephi.data.attributes.type.DynamicType;
import org.gephi.data.attributes.type.Interval;
/**
* The different type an {@link AttributeColumn} can have.
*
* @author Mathieu Bastian
* @author Martin Škurla
* @author Cezary Bartosiak
*/
public enum AttributeType {
BYTE(Byte.class),
SHORT(Short.class),
INT(Integer.class),
LONG(Long.class),
FLOAT(Float.class),
DOUBLE(Double.class),
BOOLEAN(Boolean.class),
CHAR(Character.class),
STRING(String.class),
BIGINTEGER(BigInteger.class),
BIGDECIMAL(BigDecimal.class),
DYNAMIC_BYTE(DynamicByte.class),
DYNAMIC_SHORT(DynamicShort.class),
DYNAMIC_INT(DynamicInteger.class),
DYNAMIC_LONG(DynamicLong.class),
DYNAMIC_FLOAT(DynamicFloat.class),
DYNAMIC_DOUBLE(DynamicDouble.class),
DYNAMIC_BOOLEAN(DynamicBoolean.class),
DYNAMIC_CHAR(DynamicCharacter.class),
DYNAMIC_STRING(DynamicString.class),
DYNAMIC_BIGINTEGER(DynamicBigInteger.class),
DYNAMIC_BIGDECIMAL(DynamicBigDecimal.class),
TIME_INTERVAL(TimeInterval.class),
LIST_BYTE(ByteList.class),
LIST_SHORT(ShortList.class),
LIST_INTEGER(IntegerList.class),
LIST_LONG(LongList.class),
LIST_FLOAT(FloatList.class),
LIST_DOUBLE(DoubleList.class),
LIST_BOOLEAN(BooleanList.class),
LIST_CHARACTER(CharacterList.class),
LIST_STRING(StringList.class),
LIST_BIGINTEGER(BigIntegerList.class),
LIST_BIGDECIMAL(BigDecimalList.class);
private final Class type;
AttributeType(Class type) {
this.type = type;
}
@Override
public String toString() {
return type.getSimpleName();
}
/**
* The name of the enum constant.
*
* @return the name of the enum constant
*/
public String getTypeString() {
return super.toString();
}
/**
* Returns the <code>Class</code> the type is associated with.
*
* @return the <code>class</code> the type is associated with
*/
public Class getType() {
return type;
}
/**
* Try to parse the given <code>str</code> snippet in an object of the type
* associated to this <code>AttributeType</code>. For instance if the type
* is <b>Boolean</b>, and <code>str</code> equals <code>true</code>, this
* method will succeed to return a <code>Boolean</code> instance. May
* throw <code>NumberFormatException</code>.
*
* <code>DYNAMIC</code> types and <code>TIME_INTERVAL</code> cannot be parsed with this method (see <code>isDynamicType</code> method) and a UnsupportedOperationException will be thrown if it is tried.
*
* @param str the string that is to be parsed
* @return an instance of the type of this <code>AttributeType</code>.
*/
public Object parse(String str) {
switch (this) {
case BYTE:
return new Byte(removeDecimalDigitsFromString(str));
case SHORT:
return new Short(removeDecimalDigitsFromString(str));
case INT:
return new Integer(removeDecimalDigitsFromString(str));
case LONG:
return new Long(removeDecimalDigitsFromString(str));
case FLOAT:
return new Float(str);
case DOUBLE:
return new Double(str);
case BOOLEAN:
return new Boolean(str);
case CHAR:
return new Character(str.charAt(0));
case BIGINTEGER:
return new BigInteger(removeDecimalDigitsFromString(str));
case BIGDECIMAL:
return new BigDecimal(str);
case DYNAMIC_BYTE:
case DYNAMIC_SHORT:
case DYNAMIC_INT:
case DYNAMIC_LONG:
case DYNAMIC_FLOAT:
case DYNAMIC_DOUBLE:
case DYNAMIC_BOOLEAN:
case DYNAMIC_CHAR:
case DYNAMIC_STRING:
case DYNAMIC_BIGINTEGER:
case DYNAMIC_BIGDECIMAL:
case TIME_INTERVAL:
return parseDynamic(str);
case LIST_BYTE:
return new ByteList(removeDecimalDigitsFromString(str));
case LIST_SHORT:
return new ShortList(removeDecimalDigitsFromString(str));
case LIST_INTEGER:
return new IntegerList(removeDecimalDigitsFromString(str));
case LIST_LONG:
return new LongList(removeDecimalDigitsFromString(str));
case LIST_FLOAT:
return new FloatList(str);
case LIST_DOUBLE:
return new DoubleList(str);
case LIST_BOOLEAN:
return new BooleanList(str);
case LIST_CHARACTER:
return new CharacterList(str);
case LIST_STRING:
return new StringList(str);
case LIST_BIGINTEGER:
return new BigIntegerList(removeDecimalDigitsFromString(str));
case LIST_BIGDECIMAL:
return new BigDecimalList(str);
}
return str;
}
private Object parseDynamic(String str) {
if (str.equals("<empty>")) {
return createDynamicObject(null);
}
if (str.startsWith("<")) {
str = str.substring(1);
}
if (str.endsWith(">")) {
str = str.substring(0, str.length() - 1);
}
String[] intervals = str.split("; *");
List<Interval> in = new ArrayList<Interval>();
for (String interval : intervals) {
boolean lopen = interval.startsWith("(");
boolean ropen = interval.endsWith(")");
interval = interval.substring(1, interval.length() - 1);
String[] parts = interval.split(", *", 3);
double low, high;
try {
//Try first to parse as a date:
low =parseDateToDouble(parts[0]);
} catch (ParseException ex) {
low = Double.parseDouble(parts[0]);
}
try {
//Try first to parse as a date:
high =parseDateToDouble(parts[1]);
} catch (ParseException ex) {
high = Double.parseDouble(parts[1]);
}
Object value = null;
switch (this) {
case DYNAMIC_BYTE:
value = new Byte(removeDecimalDigitsFromString(parts[2]));
break;
case DYNAMIC_SHORT:
value = new Short(removeDecimalDigitsFromString(parts[2]));
break;
case DYNAMIC_INT:
value = new Integer(removeDecimalDigitsFromString(parts[2]));
break;
case DYNAMIC_LONG:
value = new Long(removeDecimalDigitsFromString(parts[2]));
break;
case DYNAMIC_FLOAT:
value = new Float(parts[2]);
break;
case DYNAMIC_DOUBLE:
value = new Double(parts[2]);
break;
case DYNAMIC_BOOLEAN:
value = new Boolean(parts[2]);
break;
case DYNAMIC_CHAR:
value = new Character(parts[2].charAt(0));
break;
case DYNAMIC_STRING:
value = parts[2];
break;
case DYNAMIC_BIGINTEGER:
value = new BigInteger(removeDecimalDigitsFromString(parts[2]));
break;
case DYNAMIC_BIGDECIMAL:
value = new BigDecimal(parts[2]);
break;
case TIME_INTERVAL:
default:
value = null;
break;
}
in.add(new Interval(low, high, lopen, ropen, value));
}
return createDynamicObject(in);
}
private DynamicType createDynamicObject(List<Interval> in) {
if (!this.isDynamicType()) {
return null;
}
switch (this) {
case DYNAMIC_BYTE: {
ArrayList<Interval<Byte>> lin = null;
if (in != null) {
lin = new ArrayList<Interval<Byte>>();
for (Interval interval : in) {
lin.add(new Interval<Byte>(interval.getLow(), interval.getHigh(),
interval.isLowExcluded(), interval.isHighExcluded(), (Byte) interval.getValue()));
}
}
return new DynamicByte(lin);
}
case DYNAMIC_SHORT: {
ArrayList<Interval<Short>> lin = null;
if (in != null) {
lin = new ArrayList<Interval<Short>>();
for (Interval interval : in) {
lin.add(new Interval<Short>(interval.getLow(), interval.getHigh(),
interval.isLowExcluded(), interval.isHighExcluded(), (Short) interval.getValue()));
}
}
return new DynamicShort(lin);
}
case DYNAMIC_INT: {
ArrayList<Interval<Integer>> lin = null;
if (in != null) {
lin = new ArrayList<Interval<Integer>>();
for (Interval interval : in) {
lin.add(new Interval<Integer>(interval.getLow(), interval.getHigh(),
interval.isLowExcluded(), interval.isHighExcluded(), (Integer) interval.getValue()));
}
}
return new DynamicInteger(lin);
}
case DYNAMIC_LONG: {
ArrayList<Interval<Long>> lin = null;
if (in != null) {
lin = new ArrayList<Interval<Long>>();
for (Interval interval : in) {
lin.add(new Interval<Long>(interval.getLow(), interval.getHigh(),
interval.isLowExcluded(), interval.isHighExcluded(), (Long) interval.getValue()));
}
}
return new DynamicLong(lin);
}
case DYNAMIC_FLOAT: {
ArrayList<Interval<Float>> lin = null;
if (in != null) {
lin = new ArrayList<Interval<Float>>();
for (Interval interval : in) {
lin.add(new Interval<Float>(interval.getLow(), interval.getHigh(),
interval.isLowExcluded(), interval.isHighExcluded(), (Float) interval.getValue()));
}
}
return new DynamicFloat(lin);
}
case DYNAMIC_DOUBLE: {
ArrayList<Interval<Double>> lin = null;
if (in != null) {
lin = new ArrayList<Interval<Double>>();
for (Interval interval : in) {
lin.add(new Interval<Double>(interval.getLow(), interval.getHigh(),
interval.isLowExcluded(), interval.isHighExcluded(), (Double) interval.getValue()));
}
}
return new DynamicDouble(lin);
}
case DYNAMIC_BOOLEAN: {
ArrayList<Interval<Boolean>> lin = null;
if (in != null) {
lin = new ArrayList<Interval<Boolean>>();
for (Interval interval : in) {
lin.add(new Interval<Boolean>(interval.getLow(), interval.getHigh(),
interval.isLowExcluded(), interval.isHighExcluded(), (Boolean) interval.getValue()));
}
}
return new DynamicBoolean(lin);
}
case DYNAMIC_CHAR: {
ArrayList<Interval<Character>> lin = null;
if (in != null) {
lin = new ArrayList<Interval<Character>>();
for (Interval interval : in) {
lin.add(new Interval<Character>(interval.getLow(), interval.getHigh(),
interval.isLowExcluded(), interval.isHighExcluded(), (Character) interval.getValue()));
}
}
return new DynamicCharacter(lin);
}
case DYNAMIC_STRING: {
ArrayList<Interval<String>> lin = null;
if (in != null) {
lin = new ArrayList<Interval<String>>();
for (Interval interval : in) {
lin.add(new Interval<String>(interval.getLow(), interval.getHigh(),
interval.isLowExcluded(), interval.isHighExcluded(), (String) interval.getValue()));
}
}
return new DynamicString(lin);
}
case DYNAMIC_BIGINTEGER: {
ArrayList<Interval<BigInteger>> lin = null;
if (in != null) {
lin = new ArrayList<Interval<BigInteger>>();
for (Interval interval : in) {
lin.add(new Interval<BigInteger>(interval.getLow(), interval.getHigh(),
interval.isLowExcluded(), interval.isHighExcluded(), (BigInteger) interval.getValue()));
}
}
return new DynamicBigInteger(lin);
}
case DYNAMIC_BIGDECIMAL: {
ArrayList<Interval<BigDecimal>> lin = null;
if (in != null) {
lin = new ArrayList<Interval<BigDecimal>>();
for (Interval interval : in) {
lin.add(new Interval<BigDecimal>(interval.getLow(), interval.getHigh(),
interval.isLowExcluded(), interval.isHighExcluded(), (BigDecimal) interval.getValue()));
}
}
return new DynamicBigDecimal(lin);
}
case TIME_INTERVAL: {
ArrayList<Interval> lin = null;
if (in != null) {
lin = new ArrayList<Interval>();
for (Interval interval : in) {
lin.add(new Interval(interval.getLow(), interval.getHigh(),
interval.isLowExcluded(), interval.isHighExcluded()));
}
}
return new TimeInterval(lin);
}
default:
return null;
}
}
/**
* Build an <code>AttributeType</code> from the given <code>obj</code> type.
* If the given <code>obj</code> class match with an
* <code>AttributeType</code> type, returns this type. Returns <code>null</code>
* otherwise.
* <p>
* For instance if
* <b>obj instanceof Float</b> equals <b>true</b>, returns
* <code>AttributeType.FLOAT</code>.
*
* @param obj the object that is to be parsed
* @return the compatible <code>AttributeType</code>, or <code>null</code> if no type is found or the input object is null
*/
public static AttributeType parse(Object obj) {
if (obj == null) {
return null;
}
Class<?> c = obj.getClass();
for (AttributeType attributeType : AttributeType.values()) {
if (c.equals(attributeType.getType())) {
return attributeType;
}
}
return null;
}
/**
* Build an dynamic <code>AttributeType</code> from the given <code>obj</code> type.
* If the given <code>obj</code> class match with an
* <code>AttributeType</code> type, returns this type. Returns <code>null</code>
* otherwise.
* <p>
* For instance if
* <b>obj instanceof Float</b> equals <b>true</b>, returns
* <code>AttributeType.DYNAMIC_FLOAT</code>.
*
* @param obj the object that is to be parsed
* @return the compatible <code>AttributeType</code>, or <code>null</code>
*/
public static AttributeType parseDynamic(Object obj) {
if (obj == null) {
return null;
}
Class<?> c = obj.getClass();
if (c.equals(Byte.class)) {
return DYNAMIC_BYTE;
}
if (c.equals(Short.class)) {
return DYNAMIC_SHORT;
}
if (c.equals(Integer.class)) {
return DYNAMIC_INT;
}
if (c.equals(Long.class)) {
return DYNAMIC_LONG;
}
if (c.equals(Float.class)) {
return DYNAMIC_FLOAT;
}
if (c.equals(Double.class)) {
return DYNAMIC_DOUBLE;
}
if (c.equals(Boolean.class)) {
return DYNAMIC_BOOLEAN;
}
if (c.equals(Character.class)) {
return DYNAMIC_CHAR;
}
if (c.equals(String.class)) {
return DYNAMIC_STRING;
}
if (c.equals(BigInteger.class)) {
return DYNAMIC_BIGINTEGER;
}
if (c.equals(BigDecimal.class)) {
return DYNAMIC_BIGDECIMAL;
}
return null;
}
/**
* Indicates if this type is a {@code DynamicType}.
*
* @return {@code true} if this is a {@code DynamicType}, {@code false}
* otherwise
*/
public boolean isDynamicType() {
switch (this) {
case DYNAMIC_BYTE:
case DYNAMIC_SHORT:
case DYNAMIC_INT:
case DYNAMIC_LONG:
case DYNAMIC_FLOAT:
case DYNAMIC_DOUBLE:
case DYNAMIC_BOOLEAN:
case DYNAMIC_CHAR:
case DYNAMIC_STRING:
case DYNAMIC_BIGINTEGER:
case DYNAMIC_BIGDECIMAL:
case TIME_INTERVAL:
return true;
default:
return false;
}
}
public boolean isListType() {
if (this.equals(LIST_BIGDECIMAL)
|| this.equals(LIST_BIGINTEGER)
|| this.equals(LIST_BOOLEAN)
|| this.equals(LIST_BYTE)
|| this.equals(LIST_CHARACTER)
|| this.equals(LIST_DOUBLE)
|| this.equals(LIST_FLOAT)
|| this.equals(LIST_INTEGER)
|| this.equals(LIST_LONG)
|| this.equals(LIST_SHORT)
|| this.equals(LIST_STRING)) {
return true;
}
return false;
}
/**
* Removes the decimal digits and point of the numbers of string when necessary.
* Used for trying to parse decimal numbers as not decimal.
* For example BigDecimal to BigInteger.
* @param s String to remove decimal digits
* @return String without dot and decimal digits.
*/
private String removeDecimalDigitsFromString(String s) {
return removeDecimalDigitsFromStringPattern.matcher(s).replaceAll("");
}
private static final Pattern removeDecimalDigitsFromStringPattern = Pattern.compile("\\.[0-9]*");
private static double parseDateToDouble(String date) throws ParseException {
Date d = dateFormat.parse(date);
Calendar cal = Calendar.getInstance();
cal.setTime(d);
return cal.getTimeInMillis();
}
private static final SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
}
@@ -1,128 +0,0 @@
/*
Copyright 2008-2010 Gephi
Authors : Mathieu Bastian <mathieu.bastian@gephi.org>, Martin Škurla
Website : http://www.gephi.org
This file is part of Gephi.
DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
Copyright 2011 Gephi Consortium. All rights reserved.
The contents of this file are subject to the terms of either the GNU
General Public License Version 3 only ("GPL") or the Common
Development and Distribution License("CDDL") (collectively, the
"License"). You may not use this file except in compliance with the
License. You can obtain a copy of the License at
http://gephi.org/about/legal/license-notice/
or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the
specific language governing permissions and limitations under the
License. When distributing the software, include this License Header
Notice in each file and include the License files at
/cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the
License Header, with the fields enclosed by brackets [] replaced by
your own identifying information:
"Portions Copyrighted [year] [name of copyright owner]"
If you wish your version of this file to be governed by only the CDDL
or only the GPL Version 3, indicate your decision by adding
"[Contributor] elects to include this software in this distribution
under the [CDDL or GPL Version 3] license." If you do not indicate a
single choice of license, a recipient has the option to distribute
your version of this file under either the CDDL, the GPL Version 3 or
to extend the choice of license to its licensees as provided above.
However, if you add GPL Version 3 code and therefore, elected the GPL
Version 3 license, then the option applies only if the new code is
made subject to such option by the copyright holder.
Contributor(s):
Portions Copyrighted 2011 Gephi Consortium.
*/
package org.gephi.data.attributes.api;
import java.util.GregorianCalendar;
import javax.xml.datatype.DatatypeConfigurationException;
import javax.xml.datatype.DatatypeFactory;
import org.openide.util.Exceptions;
import org.openide.util.Lookup;
/**
*
* @author Mathieu Bastian
* @author Martin Škurla
*/
public abstract class AttributeUtils {
public abstract boolean isNodeColumn(AttributeColumn column);
public abstract boolean isEdgeColumn(AttributeColumn column);
public abstract boolean isColumnOfType(AttributeColumn column, AttributeType type);
public abstract boolean areAllColumnsOfType(AttributeColumn[] columns, AttributeType type);
public abstract boolean areAllColumnsOfSameType(AttributeColumn[] columns);
public abstract boolean isStringColumn(AttributeColumn column);
public abstract boolean areAllStringColumns(AttributeColumn[] columns);
public abstract boolean isNumberColumn(AttributeColumn column);
public abstract boolean areAllNumberColumns(AttributeColumn[] columns);
public abstract boolean isNumberListColumn(AttributeColumn column);
public abstract boolean areAllNumberListColumns(AttributeColumn[] columns);
public abstract boolean isNumberOrNumberListColumn(AttributeColumn column);
public abstract boolean areAllNumberOrNumberListColumns(AttributeColumn[] columns);
public abstract boolean isDynamicNumberColumn(AttributeColumn column);
public abstract boolean areAllDynamicNumberColumns(AttributeColumn[] columns);
public abstract AttributeColumn[] getNumberColumns(AttributeTable table);
public abstract AttributeColumn[] getStringColumns(AttributeTable table);
public abstract AttributeColumn[] getAllCollums(AttributeModel model);
@SuppressWarnings("rawtypes")
public abstract Comparable getMin(AttributeColumn column, Comparable[] values);
@SuppressWarnings("rawtypes")
public abstract Comparable getMax(AttributeColumn column, Comparable[] values);
public static synchronized AttributeUtils getDefault() {
return Lookup.getDefault().lookup(AttributeUtils.class);
}
/**
* Used for export (writes XML date strings).
*
* @param d a double to convert from
*
* @return an XML date string.
*
* @throws IllegalArgumentException if {@code d} is infinite.
*/
public static String getXMLDateStringFromDouble(double d) {
try {
DatatypeFactory dateFactory = DatatypeFactory.newInstance();
if (d == Double.NEGATIVE_INFINITY) {
return "-Infinity";
} else if (d == Double.POSITIVE_INFINITY) {
return "Infinity";
}
GregorianCalendar gc = new GregorianCalendar();
gc.setTimeInMillis((long) d);
return dateFactory.newXMLGregorianCalendar(gc).toXMLFormat().substring(0, 23);
} catch (DatatypeConfigurationException ex) {
Exceptions.printStackTrace(ex);
return "";
}
}
}
@@ -1,17 +0,0 @@
# Translation file for Gephi.
# Copyright (C) 2011 Gephi contributors.
# This file is distributed under the same license as the Gephi package.
#
# Translators:
# FIRST AUTHOR <EMAIL@ADDRESS>, 2010.
!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://bugs.launchpad.net/gephi\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2011-08-04 19\:12+0000\nLast-Translator\: gephi <sebastien.heymann@gmail.com>\nLanguage-Team\: Spanish (Castilian) (http\://www.transifex.net/projects/p/gephi/team/es/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: es\nPlural-Forms\: nplurals\=2; plural\=(n \!\= 1)\n
OpenIDE-Module-Long-Description=Attributes API proporciona acceso a valores de atributos mediante un sistema eficiente de filas/columnas.
AttributeOrigin_property=Propiedad
AttributeOrigin_data=Dato
AttributeOrigin_computed_name=Calculado
OpenIDE-Module-Short-Description=API para almacenar y recuperar atributos
@@ -1,17 +0,0 @@
# Translation file for Gephi.
# Copyright (C) 2011 Gephi contributors.
# This file is distributed under the same license as the Gephi package.
#
# Translators:
# FIRST AUTHOR <EMAIL@ADDRESS>, 2010.
!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://bugs.launchpad.net/gephi\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2011-08-04 19\:12+0000\nLast-Translator\: gephi <sebastien.heymann@gmail.com>\nLanguage-Team\: French (http\://www.transifex.net/projects/p/gephi/team/fr/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: fr\nPlural-Forms\: nplurals\=2; plural\=(n > 1)\n
OpenIDE-Module-Long-Description=Attributes API donne acc\u00e8s aux valeurs d'attribut \u00e0 travers un syst\u00e8me efficace de lignes/colonnes.
AttributeOrigin_property=Propri\u00e9t\u00e9
AttributeOrigin_data=Donn\u00e9e
AttributeOrigin_computed_name=Calcul\u00e9
OpenIDE-Module-Short-Description=API de stockage et de r\u00e9cup\u00e9ration d'attributs
@@ -1,17 +0,0 @@
# Translation file for Gephi.
# Copyright (C) 2011 Gephi contributors.
# This file is distributed under the same license as the Gephi package.
#
# Translators:
# Siro Kida <kida.siro@gmail.com>, 2011.
!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://bugs.launchpad.net/gephi\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2011-08-29 18\:30+0000\nLast-Translator\: sarang <kida.siro@gmail.com>\nLanguage-Team\: Japanese (http\://www.transifex.net/projects/p/gephi/team/ja/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: ja\nPlural-Forms\: nplurals\=1; plural\=0\n
OpenIDE-Module-Long-Description=\u5c5e\u6027API\u306f\u3001\u52b9\u7387\u7684\u306a\u5217/\u884c\u306e\u30b7\u30b9\u30c6\u30e0\u3092\u4f7f\u7528\u3057\u3066\u5c5e\u6027\u5024\u3078\u306e\u30a2\u30af\u30bb\u30b9\u3092\u63d0\u4f9b\u3057\u307e\u3059\u3002
AttributeOrigin_property=\u30d7\u30ed\u30d1\u30c6\u30a3
AttributeOrigin_data=\u30c7\u30fc\u30bf
AttributeOrigin_computed_name=\u8a08\u7b97\u3055\u308c\u305f
OpenIDE-Module-Short-Description=\u5c5e\u6027\u3092\u683c\u7d0d\u304a\u3088\u3073\u53d6\u5f97\u3059\u308b\u305f\u3081\u306eAPI
@@ -1,17 +0,0 @@
# Translation file for Gephi.
# Copyright (C) 2011 Gephi contributors.
# This file is distributed under the same license as the Gephi package.
#
# Translators:
# C\u00e9lio CJr <celiofariajr@gmail.com>, 2011.
!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://bugs.launchpad.net/gephi\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2011-08-05 16\:43+0000\nLast-Translator\: celiofariajr <celiofariajr@gmail.com>\nLanguage-Team\: Portuguese (Brazilian) (http\://www.transifex.net/projects/p/gephi/team/pt_BR/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: pt_BR\nPlural-Forms\: nplurals\=2; plural\=(n > 1)\n
OpenIDE-Module-Long-Description=A API de atributos fornece acesso aos valores de atributos por meio de um sistema eficiente de colunas e linhas.
AttributeOrigin_property=Propriedade
AttributeOrigin_data=Dado
AttributeOrigin_computed_name=Calculado
OpenIDE-Module-Short-Description=API de armazenamento e recupera\u00e7\u00e3o de dados
@@ -1,16 +0,0 @@
# Russian translation for gephi
# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010
# This file is distributed under the same license as the gephi package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2010.
#
!=Project-Id-Version\: gephi\nReport-Msgid-Bugs-To\: FULL NAME <EMAIL@ADDRESS>\nPOT-Creation-Date\: 2010-04-07 13\:16+0200\nPO-Revision-Date\: 2010-12-01 08\:22+0000\nLast-Translator\: Altsoph <Unknown>\nLanguage-Team\: Russian <ru@li.org>\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nX-Launchpad-Export-Date\: 2011-03-13 04\:46+0000\nX-Generator\: Launchpad (build 12559)\n
OpenIDE-Module-Long-Description=API \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u0430\u043c \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u044b\u0439 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u0430\u043c\u0438 \u0432 \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u0445 \u0441\u0442\u0440\u043e\u043a \u0438 \u043a\u043e\u043b\u043e\u043d\u043e\u043a.
AttributeOrigin_property=\u0421\u0432\u043e\u0439\u0441\u0442\u0432\u043e
AttributeOrigin_data=\u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0435
AttributeOrigin_computed_name=\u0420\u0430\u0441\u0447\u0438\u0442\u0430\u043d\u043e
OpenIDE-Module-Short-Description=API \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u0430\u043c
@@ -1,38 +0,0 @@
# Translation file for Gephi.
# Copyright (C) 2011 Gephi contributors.
# This file is distributed under the same license as the Gephi package.
#
# Translators:
# FIRST AUTHOR <EMAIL@ADDRESS>, 2010.
msgid ""
msgstr ""
"Project-Id-Version: Gephi\n"
"Report-Msgid-Bugs-To: https://bugs.launchpad.net/gephi\n"
"POT-Creation-Date: 2011-08-05 14:52+0200\n"
"PO-Revision-Date: 2011-08-04 19:12+0000\n"
"Last-Translator: gephi <sebastien.heymann@gmail.com>\n"
"Language-Team: Spanish (Castilian) (http://www.transifex.net/projects/p/gephi/team/es/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: es\n"
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
msgid "OpenIDE-Module-Long-Description"
msgstr ""
"Attributes API proporciona acceso a valores de atributos mediante un sistema"
" eficiente de filas/columnas."
msgid "AttributeOrigin_property"
msgstr "Propiedad"
msgid "AttributeOrigin_data"
msgstr "Dato"
msgid "AttributeOrigin_computed_name"
msgstr "Calculado"
msgid "OpenIDE-Module-Short-Description"
msgstr "API para almacenar y recuperar atributos"
@@ -1,38 +0,0 @@
# Translation file for Gephi.
# Copyright (C) 2011 Gephi contributors.
# This file is distributed under the same license as the Gephi package.
#
# Translators:
# FIRST AUTHOR <EMAIL@ADDRESS>, 2010.
msgid ""
msgstr ""
"Project-Id-Version: Gephi\n"
"Report-Msgid-Bugs-To: https://bugs.launchpad.net/gephi\n"
"POT-Creation-Date: 2011-08-05 14:52+0200\n"
"PO-Revision-Date: 2011-08-04 19:12+0000\n"
"Last-Translator: gephi <sebastien.heymann@gmail.com>\n"
"Language-Team: French (http://www.transifex.net/projects/p/gephi/team/fr/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: fr\n"
"Plural-Forms: nplurals=2; plural=(n > 1)\n"
msgid "OpenIDE-Module-Long-Description"
msgstr ""
"Attributes API donne accès aux valeurs d'attribut à travers un système "
"efficace de lignes/colonnes."
msgid "AttributeOrigin_property"
msgstr "Propriété"
msgid "AttributeOrigin_data"
msgstr "Donnée"
msgid "AttributeOrigin_computed_name"
msgstr "Calculé"
msgid "OpenIDE-Module-Short-Description"
msgstr "API de stockage et de récupération d'attributs"
@@ -1,36 +0,0 @@
# Translation file for Gephi.
# Copyright (C) 2011 Gephi contributors.
# This file is distributed under the same license as the Gephi package.
#
# Translators:
# Siro Kida <kida.siro@gmail.com>, 2011.
msgid ""
msgstr ""
"Project-Id-Version: Gephi\n"
"Report-Msgid-Bugs-To: https://bugs.launchpad.net/gephi\n"
"POT-Creation-Date: 2011-08-05 14:52+0200\n"
"PO-Revision-Date: 2011-08-29 18:30+0000\n"
"Last-Translator: sarang <kida.siro@gmail.com>\n"
"Language-Team: Japanese (http://www.transifex.net/projects/p/gephi/team/ja/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: ja\n"
"Plural-Forms: nplurals=1; plural=0\n"
msgid "OpenIDE-Module-Long-Description"
msgstr "属性APIは、効率的な列/行のシステムを使用して属性値へのアクセスを提供します。"
msgid "AttributeOrigin_property"
msgstr "プロパティ"
msgid "AttributeOrigin_data"
msgstr "データ"
msgid "AttributeOrigin_computed_name"
msgstr "計算された"
msgid "OpenIDE-Module-Short-Description"
msgstr "属性を格納および取得するためのAPI"
@@ -1,38 +0,0 @@
# Translation file for Gephi.
# Copyright (C) 2011 Gephi contributors.
# This file is distributed under the same license as the Gephi package.
#
# Translators:
# Célio CJr <celiofariajr@gmail.com>, 2011.
msgid ""
msgstr ""
"Project-Id-Version: Gephi\n"
"Report-Msgid-Bugs-To: https://bugs.launchpad.net/gephi\n"
"POT-Creation-Date: 2011-08-05 14:52+0200\n"
"PO-Revision-Date: 2011-08-05 16:43+0000\n"
"Last-Translator: celiofariajr <celiofariajr@gmail.com>\n"
"Language-Team: Portuguese (Brazilian) (http://www.transifex.net/projects/p/gephi/team/pt_BR/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: pt_BR\n"
"Plural-Forms: nplurals=2; plural=(n > 1)\n"
msgid "OpenIDE-Module-Long-Description"
msgstr ""
"A API de atributos fornece acesso aos valores de atributos por meio de um "
"sistema eficiente de colunas e linhas."
msgid "AttributeOrigin_property"
msgstr "Propriedade"
msgid "AttributeOrigin_data"
msgstr "Dado"
msgid "AttributeOrigin_computed_name"
msgstr "Calculado"
msgid "OpenIDE-Module-Short-Description"
msgstr "API de armazenamento e recuperação de dados"
@@ -1,321 +0,0 @@
/*
Copyright 2008-2010 Gephi
Authors : Cezary Bartosiak
Website : http://www.gephi.org
This file is part of Gephi.
DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
Copyright 2011 Gephi Consortium. All rights reserved.
The contents of this file are subject to the terms of either the GNU
General Public License Version 3 only ("GPL") or the Common
Development and Distribution License("CDDL") (collectively, the
"License"). You may not use this file except in compliance with the
License. You can obtain a copy of the License at
http://gephi.org/about/legal/license-notice/
or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the
specific language governing permissions and limitations under the
License. When distributing the software, include this License Header
Notice in each file and include the License files at
/cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the
License Header, with the fields enclosed by brackets [] replaced by
your own identifying information:
"Portions Copyrighted [year] [name of copyright owner]"
If you wish your version of this file to be governed by only the CDDL
or only the GPL Version 3, indicate your decision by adding
"[Contributor] elects to include this software in this distribution
under the [CDDL or GPL Version 3] license." If you do not indicate a
single choice of license, a recipient has the option to distribute
your version of this file under either the CDDL, the GPL Version 3 or
to extend the choice of license to its licensees as provided above.
However, if you add GPL Version 3 code and therefore, elected the GPL
Version 3 license, then the option applies only if the new code is
made subject to such option by the copyright holder.
Contributor(s):
Portions Copyrighted 2011 Gephi Consortium.
*/
package org.gephi.data.attributes.type;
import org.gephi.data.attributes.api.AttributeUtils;
/**
* This class represents an interval with some value.
*
* @author Cezary Bartosiak
*
* @param <T> type of data
*/
public final class Interval<T> implements Comparable<Interval> {
private double low; // the left endpoint
private double high; // the right endpoint
private boolean lopen; // indicates if the left endpoint is excluded
private boolean ropen; // indicates if the right endpoint is excluded
private T value; // the value stored in this interval
/**
* Constructs a new interval instance
*
* <p>Note that {@code value} cannot be null if you want use this
* {@code interval} as a value storage. If it is null some estimators
* could not work and generate exceptions.
*
* @param interval the interval to copy the values from
* @param value the value stored in this interval
*
* @throws IllegalArgumentException if {@code low} > {@code high}.
*/
public Interval(Interval interval, T value) {
this.low = interval.low;
this.high = interval.high;
this.lopen = interval.lopen;
this.ropen = interval.ropen;
this.value = value;
}
/**
* Constructs a new interval instance.
*
* <p>Note that {@code value} cannot be null if you want use this
* {@code interval} as a value storage. If it is null some estimators
* could not work and generate exceptions.
*
* @param low the left endpoint
* @param high the right endpoint
* @param lopen indicates if the left endpoint is excluded (true in this case)
* @param ropen indicates if the right endpoint is excluded (true in this case)
* @param value the value stored in this interval
*
* @throws IllegalArgumentException if {@code low} > {@code high}.
*/
public Interval(double low, double high, boolean lopen, boolean ropen, T value) {
if (low > high) {
throw new IllegalArgumentException(
"The left endpoint of the interval must be less than "
+ "the right endpoint.");
}
this.low = low;
this.high = high;
this.lopen = lopen;
this.ropen = ropen;
this.value = value;
}
/**
* Constructs a new interval instance with no value.
*
* @param low the left endpoint
* @param high the right endpoint
* @param lopen indicates if the left endpoint is excluded (true in this case)
* @param ropen indicates if the right endpoint is excluded (true in this case)
*
* @throws IllegalArgumentException if {@code low} > {@code high}.
*/
public Interval(double low, double high, boolean lopen, boolean ropen) {
this(low, high, lopen, ropen, null);
}
/**
* Constructs a new interval instance with left and right endpoints included
* by default.
*
* <p>Note that {@code value} cannot be null if you want use this
* {@code interval} as a value storage. If it is null some estimators
* could not work and generate exceptions.
*
* @param low the left endpoint
* @param high the right endpoint
* @param value the value stored in this interval
*
* @throws IllegalArgumentException if {@code low} > {@code high}.
*/
public Interval(double low, double high, T value) {
this(low, high, false, false, value);
}
/**
* Constructs a new interval instance with no value and left and right
* endpoints included by default.
*
* @param low the left endpoint
* @param high the right endpoint
*
* @throws IllegalArgumentException if {@code low} > {@code high}.
*/
public Interval(double low, double high) {
this(low, high, false, false, null);
}
/**
* Compares this interval with the specified interval for order.
*
* <p>Any two intervals <i>i</i> and <i>i'</i> satisfy the {@code interval
* trichotomy}; that is, exactly one of the following three properties
* holds:
* <ol>
* <li>
* <i>i</i> and <i>i'</i> overlap;
*
* <li>
* <i>i</i> is to the left of <i>i'</i> (<i>i.high < i'.low</i>);
*
* <li>
* <i>i</i> is to the right of <i>i'</i> (<i>i'.high < i.low</i>).
* </ol>
*
* <p>Note that if two intervals are equal ({@code i.low = i'.low} and
* {@code i.high = i'.high}), they overlap as well. But if they simply
* overlap (for instance {@code i.low < i'.low} and {@code i.high >
* i'.high}) they aren't equal. Remember that if two intervals are equal,
* they have got the same bounds excluded or included.
*
* @param interval the interval to be compared
*
* @return a negative integer, zero, or a positive integer as this interval
* is to the left of, overlaps with, or is to the right of the
* specified interval.
*
* @throws NullPointerException if {@code interval} is null.
*/
public int compareTo(Interval interval) {
if (interval == null) {
throw new NullPointerException("Interval cannot be null.");
}
if (high < interval.low || high <= interval.low && (ropen || interval.lopen)) {
return -1;
}
if (interval.high < low || interval.high <= low && (interval.ropen || lopen)) {
return 1;
}
return 0;
}
/**
* Returns the left endpoint.
*
* @return the left endpoint.
*/
public double getLow() {
return low;
}
/**
* Returns the right endpoint.
*
* @return the right endpoint.
*/
public double getHigh() {
return high;
}
/**
* Indicates if the left endpoint is excluded.
*
* @return {@code true} if the left endpoint is excluded,
* {@code false} otherwise.
*/
public boolean isLowExcluded() {
return lopen;
}
/**
* Indicates if the right endpoint is excluded.
*
* @return {@code true} if the right endpoint is excluded,
* {@code false} otherwise.
*/
public boolean isHighExcluded() {
return ropen;
}
/**
* Returns the value stored in this interval.
*
* @return the value stored in this interval.
*/
public T getValue() {
return value;
}
/**
* Compares this interval with the specified object for equality.
*
* <p>Note that two intervals are equal if {@code i.low = i'.low} and
* {@code i.high = i'.high} and they have got the bounds excluded/included.
*
* @param obj object to which this interval is to be compared
*
* @return {@code true} if and only if the specified {@code Object} is a
* {@code Interval} whose low and high are equal to this
* {@code Interval's}.
*
* @see #compareTo(org.gephi.data.attributes.type.Interval)
* @see #hashCode
*/
@Override
public boolean equals(Object obj) {
if (obj != null && obj.getClass().equals(this.getClass())) {
Interval<T> interval = (Interval<T>) obj;
if (low == interval.low && high == interval.high
&& lopen == interval.lopen && ropen == interval.ropen) {
return true;
}
}
return false;
}
@Override
public int hashCode() {
int hash = 7;
hash = 97 * hash + (int) (Double.doubleToLongBits(this.low) ^ (Double.doubleToLongBits(this.low) >>> 32));
hash = 97 * hash + (int) (Double.doubleToLongBits(this.high) ^ (Double.doubleToLongBits(this.high) >>> 32));
hash = 97 * hash + (this.lopen ? 1 : 0);
hash = 97 * hash + (this.ropen ? 1 : 0);
return hash;
}
/**
* Creates a string representation of the interval with its value.
*
* @param timesAsDoubles indicates if times should be shown as doubles or dates
*
* @return a string representation with times as doubles or dates.
*/
public String toString(boolean timesAsDoubles) {
if (timesAsDoubles) {
return (lopen ? "(" : "[") + low + ", " + high + ", " + value + (ropen ? ")" : "]");
} else {
return (lopen ? "(" : "[") + AttributeUtils.getXMLDateStringFromDouble(low) + ", "
+ AttributeUtils.getXMLDateStringFromDouble(high) + ", " + value + (ropen ? ")" : "]");
}
}
/**
* Returns a string representation of this interval in one of the formats:
* <ol>
* <li>
* {@code [low, high, value]}
* <li>
* {@code (low, high, value]}
* <li>
* {@code [low, high, value)}
* <li>
* {@code (low, high, value)}
* </ol>
*
* <p>Times are always shown as doubles</p>
*
* @return a string representation of this interval.
*/
@Override
public String toString() {
return toString(true);
}
}
@@ -1,612 +0,0 @@
/*
Copyright 2008-2010 Gephi
Authors : Cezary Bartosiak
Website : http://www.gephi.org
This file is part of Gephi.
DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
Copyright 2011 Gephi Consortium. All rights reserved.
The contents of this file are subject to the terms of either the GNU
General Public License Version 3 only ("GPL") or the Common
Development and Distribution License("CDDL") (collectively, the
"License"). You may not use this file except in compliance with the
License. You can obtain a copy of the License at
http://gephi.org/about/legal/license-notice/
or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the
specific language governing permissions and limitations under the
License. When distributing the software, include this License Header
Notice in each file and include the License files at
/cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the
License Header, with the fields enclosed by brackets [] replaced by
your own identifying information:
"Portions Copyrighted [year] [name of copyright owner]"
If you wish your version of this file to be governed by only the CDDL
or only the GPL Version 3, indicate your decision by adding
"[Contributor] elects to include this software in this distribution
under the [CDDL or GPL Version 3] license." If you do not indicate a
single choice of license, a recipient has the option to distribute
your version of this file under either the CDDL, the GPL Version 3 or
to extend the choice of license to its licensees as provided above.
However, if you add GPL Version 3 code and therefore, elected the GPL
Version 3 license, then the option applies only if the new code is
made subject to such option by the copyright holder.
Contributor(s):
Portions Copyrighted 2011 Gephi Consortium.
*/
package org.gephi.data.attributes.type;
import java.util.ArrayList;
import java.util.List;
import org.gephi.data.attributes.api.AttributeType;
import org.gephi.data.attributes.api.Estimator;
import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
import static org.junit.Assert.*;
/**
* Unit test for DynamicType class.
*
* @author Cezary Bartosiak
*/
public class DynamicTypeTest {
public DynamicTypeTest() { }
@BeforeClass
public static void setUpClass() throws Exception { }
@AfterClass
public static void tearDownClass() throws Exception { }
@Before
public void setUp() { }
@After
public void tearDown() { }
@Test
public void testCopyConstructors() {
System.out.println("copyConstructors");
DynamicDouble expected1 = makeTree1();
DynamicDouble instance1 = makeTree1();
DynamicDouble expected2 = makeTree1_in();
DynamicDouble instance2 = new DynamicDouble(makeTree1(),
new Interval<Double>(-2.0, -1.0, 10.0));
DynamicDouble expected3 = makeTree1_out();
DynamicDouble instance3 = new DynamicDouble(makeTree1(),
null,
new Interval<Double>(0.0, 30.0));
DynamicDouble expected4 = makeTree1_in_out();
DynamicDouble instance4 = new DynamicDouble(makeTree1(),
new Interval<Double>(-2.0, -1.0, 10.0),
new Interval<Double>(0.0, 30.0));
assertEquals(expected1, instance1);
assertEquals(expected2, instance2);
assertEquals(expected3, instance3);
assertEquals(expected4, instance4);
System.out.println("instance1: " + instance1);
System.out.println("instance2: " + instance2);
System.out.println("instance3: " + instance3);
System.out.println("instance4: " + instance4);
System.out.println();
}
@Test
public void testGetLow() {
System.out.println("getLow()");
DynamicDouble instance1 = makeTree1();
DynamicDouble instance2 = new DynamicDouble();
Double expResult1 = 0.0;
Double result1 = instance1.getLow();
Double expResult2 = Double.NEGATIVE_INFINITY;
Double result2 = instance2.getLow();
assertEquals(expResult1, result1);
assertEquals(expResult2, result2);
System.out.println("expResult1: " + expResult1);
System.out.println("result1: " + result1);
System.out.println("expResult2: " + expResult2);
System.out.println("result2: " + result2);
System.out.println();
}
@Test
public void testGetHigh() {
System.out.println("getHigh()");
DynamicDouble instance1 = makeTree1();
DynamicDouble instance2 = new DynamicDouble();
Double expResult1 = 30.0;
Double result1 = instance1.getHigh();
Double expResult2 = Double.POSITIVE_INFINITY;
Double result2 = instance2.getHigh();
assertEquals(expResult1, result1);
assertEquals(expResult2, result2);
System.out.println("expResult1: " + expResult1);
System.out.println("result1: " + result1);
System.out.println("expResult2: " + expResult2);
System.out.println("result2: " + result2);
System.out.println();
}
@Test
public void testIsInRange() {
System.out.println("isInRange()");
DynamicDouble instance = makeTree1();
Boolean expResult1 = false;
Boolean result1 = instance.isInRange(11.0, 14.0);
Boolean expResult2 = true;
Boolean result2 = instance.isInRange(9.0, 12.0);
assertEquals(expResult1, result1);
assertEquals(expResult2, result2);
System.out.println("expResult1: " + expResult1);
System.out.println("result1: " + result1);
System.out.println("expResult2: " + expResult2);
System.out.println("result2: " + result2);
System.out.println();
}
@Test
public void testGetValue_0args() {
System.out.println("getValue()");
DynamicDouble instance = makeTree1();
Double value1 = instance.getValue();
Double value2 = 0.0;
assertEquals(value1, value2);
System.out.println("value1: " + value1);
System.out.println("value2: " + value2);
System.out.println();
}
@Test
public void testGetValue_double_double() {
System.out.println("getValue(double, double)");
DynamicDouble instance = makeTree1();
Double value1 = instance.getValue(14, 16);
Double value2 = 4.0;
assertEquals(value1, value2);
System.out.println("value1: " + value1);
System.out.println("value2: " + value2);
System.out.println();
}
@Test
public void testGetValue_Estimator() {
System.out.println("getValue(Estimator)");
DynamicDouble dInstance = makeTree1();
DynamicInteger nInstance = makeTreeInteger();
DynamicBoolean bInstance = makeTreeBoolean();
DynamicCharacter cInstance = makeTreeCharacter();
DynamicString sInstance = makeTreeString();
Double valueRealAverage1 = dInstance.getValue(Estimator.AVERAGE);
Double valueRealAverage2 = 4.5;
Double valueRealMedian1 = dInstance.getValue(Estimator.MEDIAN);
Double valueRealMedian2 = 4.5;
Integer valueIntegerAverage1 = nInstance.getValue(Estimator.AVERAGE);
Integer valueIntegerAverage2 = 4;
Integer valueIntegerMedian1 = nInstance.getValue(Estimator.MEDIAN);
Integer valueIntegerMedian2 = 4;
Integer valueIntegerSum1 = nInstance.getValue(Estimator.SUM);
Integer valueIntegerSum2 = 45;
Integer valueIntegerMin1 = nInstance.getValue(Estimator.MIN);
Integer valueIntegerMin2 = 0;
Integer valueIntegerMax1 = nInstance.getValue(Estimator.MAX);
Integer valueIntegerMax2 = 9;
Boolean valueBooleanMin1 = bInstance.getValue(Estimator.MIN);
Boolean valueBooleanMin2 = false;
Boolean valueBooleanMax1 = bInstance.getValue(Estimator.MAX);
Boolean valueBooleanMax2 = true;
Character valueCharacterMin1 = cInstance.getValue(Estimator.MIN);
Character valueCharacterMin2 = '0';
Character valueCharacterMax1 = cInstance.getValue(Estimator.MAX);
Character valueCharacterMax2 = '9';
String valueStringMedian1 = sInstance.getValue(Estimator.MEDIAN);
String valueStringMedian2 = "5";
String valueStringMode1 = sInstance.getValue(Estimator.MODE);
String valueStringMode2 = "0_repeat";
String valueStringMin1 = sInstance.getValue(Estimator.MIN);
String valueStringMin2 = "0";
String valueStringMax1 = sInstance.getValue(Estimator.MAX);
String valueStringMax2 = "9";
String valueStringFirst1 = sInstance.getValue(Estimator.FIRST);
String valueStringFirst2 = "0";
String valueStringLast1 = sInstance.getValue(Estimator.LAST);
String valueStringLast2 = "0_repeat";
assertEquals(valueRealAverage1, valueRealAverage2);
assertEquals(valueRealMedian1, valueRealMedian2);
assertEquals(valueIntegerAverage1, valueIntegerAverage2);
assertEquals(valueIntegerMedian1, valueIntegerMedian2);
assertEquals(valueIntegerSum1, valueIntegerSum2);
assertEquals(valueIntegerMin1, valueIntegerMin2);
assertEquals(valueIntegerMax1, valueIntegerMax2);
assertEquals(valueBooleanMin1, valueBooleanMin2);
assertEquals(valueBooleanMax1, valueBooleanMax2);
assertEquals(valueCharacterMin1, valueCharacterMin2);
assertEquals(valueCharacterMax1, valueCharacterMax2);
assertEquals(valueStringMedian1, valueStringMedian2);
assertEquals(valueStringMode1, valueStringMode2);
assertEquals(valueStringMin1, valueStringMin2);
assertEquals(valueStringMax1, valueStringMax2);
assertEquals(valueStringFirst1, valueStringFirst2);
assertEquals(valueStringLast1, valueStringLast2);
System.out.println("valueRealAverage1: " + valueRealAverage1);
System.out.println("valueRealAverage2: " + valueRealAverage2);
System.out.println("valueRealMedian1: " + valueRealMedian1);
System.out.println("valueRealMedian2: " + valueRealMedian2);
System.out.println("valueIntegerAverage1: " + valueIntegerAverage1);
System.out.println("valueIntegerAverage2: " + valueIntegerAverage2);
System.out.println("valueIntegerMedian1: " + valueIntegerMedian1);
System.out.println("valueIntegerMedian2: " + valueIntegerMedian2);
System.out.println("valueIntegerSum1: " + valueIntegerSum1);
System.out.println("valueIntegerSum2: " + valueIntegerSum2);
System.out.println("valueIntegerMin1: " + valueIntegerMin1);
System.out.println("valueIntegerMin2: " + valueIntegerMin2);
System.out.println("valueIntegerMax1: " + valueIntegerMax1);
System.out.println("valueIntegerMax2: " + valueIntegerMax2);
System.out.println("valueBooleanMin1: " + valueBooleanMin1);
System.out.println("valueBooleanMin2: " + valueBooleanMin2);
System.out.println("valueBooleanMax1: " + valueBooleanMax1);
System.out.println("valueBooleanMax2: " + valueBooleanMax2);
System.out.println("valueCharacterMin1: " + valueCharacterMin1);
System.out.println("valueCharacterMin2: " + valueCharacterMin2);
System.out.println("valueCharacterMax1: " + valueCharacterMax1);
System.out.println("valueCharacterMax2: " + valueCharacterMax2);
System.out.println("valueStringMedian1: " + valueStringMedian1);
System.out.println("valueStringMedian2: " + valueStringMedian2);
System.out.println("valueStringMode1: " + valueStringMode1);
System.out.println("valueStringMode2: " + valueStringMode2);
System.out.println("valueStringMin1: " + valueStringMin1);
System.out.println("valueStringMin2: " + valueStringMin2);
System.out.println("valueStringMax1: " + valueStringMax1);
System.out.println("valueStringMax2: " + valueStringMax2);
System.out.println("valueStringFirst1: " + valueStringFirst1);
System.out.println("valueStringFirst2: " + valueStringFirst2);
System.out.println("valueStringLast1: " + valueStringLast1);
System.out.println("valueStringLast2: " + valueStringLast2);
System.out.println();
}
@Test
public void testGetValue_3args() {
System.out.println("getValue(double, double, Estimator)");
DynamicDouble instance = makeTree1();
Double valueRealAverage1 = instance.getValue(1, 9, Estimator.AVERAGE);
Double valueRealAverage2 = 1.5;
Double valueRealSum1 = instance.getValue(1, 9, Estimator.SUM);
Double valueRealSum2 = 6.0;
assertEquals(valueRealAverage1, valueRealAverage2);
assertEquals(valueRealSum1, valueRealSum2);
System.out.println("valueRealAverage1: " + valueRealAverage1);
System.out.println("valueRealAverage2: " + valueRealAverage2);
System.out.println("valueRealSum1: " + valueRealSum1);
System.out.println("valueRealSum2: " + valueRealSum2);
System.out.println();
}
@Test
public void testGetValues_0args() {
System.out.println("getValues()");
DynamicDouble instance = makeTree3();
List<Double> values1 = instance.getValues();
List<Double> values2 = new ArrayList<Double>();
for (int i = 0; i < 4; ++i)
values2.add((double)i);
assertEquals(values1, values2);
System.out.println("values1: " + values1);
System.out.println("values2: " + values2);
System.out.println();
}
@Test
public void testGetValues_double_double() {
System.out.println("getValues(double, double)");
DynamicDouble instance = makeTree1();
List<Double> values11 = instance.getValues(
Double.NEGATIVE_INFINITY, Double.POSITIVE_INFINITY);
List<Double> values12 = new ArrayList<Double>();
for (int i = 0; i < 10; ++i)
values12.add((double)i);
List<Double> values21 = instance.getValues(0, 9);
List<Double> values22 = new ArrayList<Double>();
for (int i = 0; i < 4; ++i)
values22.add((double)i);
List<Double> values31 = instance.getValues(14, 19);
List<Double> values32 = new ArrayList<Double>();
for (int i = 4; i < 8; ++i)
values32.add((double)i);
List<Double> values41 = instance.getValues(24, 31);
List<Double> values42 = new ArrayList<Double>();
for (int i = 8; i < 10; ++i)
values42.add((double)i);
assertEquals(values11, values12);
assertEquals(values21, values22);
assertEquals(values31, values32);
assertEquals(values41, values42);
System.out.println("values11: " + values11);
System.out.println("values12: " + values12);
System.out.println("values21: " + values21);
System.out.println("values22: " + values22);
System.out.println("values31: " + values31);
System.out.println("values32: " + values32);
System.out.println("values41: " + values41);
System.out.println("values42: " + values42);
System.out.println();
}
@Test
public void testGetIntervals() {
System.out.println("getIntervals(double, double)");
DynamicDouble instance = makeTree1();
List<Interval<Double>> list = instance.getIntervals(Double.NEGATIVE_INFINITY, Double.POSITIVE_INFINITY);
String result = "<empty>";
if (!list.isEmpty()) {
StringBuilder sb = new StringBuilder("<");
sb.append(list.get(0).toString());
for (int i = 1; i < list.size(); ++i)
sb.append("; ").append(list.get(i).toString());
sb.append(">");
result = sb.toString();
}
String expResult = instance.toString();
assertEquals(result, expResult);
System.out.println("result: " + result);
System.out.println("expResult: " + expResult);
System.out.println();
}
@Test
public void testGetUnderlyingType() {
System.out.println("getUnderlyingType");
DynamicType dInstance = makeTree1();
DynamicType nInstance = makeTreeInteger();
DynamicType bInstance = makeTreeBoolean();
DynamicType cInstance = makeTreeCharacter();
DynamicType sInstance = makeTreeString();
assertEquals(dInstance.getUnderlyingType(), Double.class);
assertEquals(nInstance.getUnderlyingType(), Integer.class);
assertEquals(bInstance.getUnderlyingType(), Boolean.class);
assertEquals(cInstance.getUnderlyingType(), Character.class);
assertEquals(sInstance.getUnderlyingType(), String.class);
System.out.println("dInstance: " + dInstance.getUnderlyingType());
System.out.println("nInstance: " + nInstance.getUnderlyingType());
System.out.println("bInstance: " + bInstance.getUnderlyingType());
System.out.println("cInstance: " + cInstance.getUnderlyingType());
System.out.println("sInstance: " + sInstance.getUnderlyingType());
System.out.println();
}
@Test
public void testEquals() {
System.out.println("equals(Object)");
DynamicDouble instance1 = makeTree1();
DynamicDouble instance2 = makeTree1();
DynamicDouble instance3 = makeTree2();
DynamicDouble instance4 = makeTree3();
boolean expResult1 = true;
boolean result1 = instance1.equals(instance1);
boolean expResult2 = true;
boolean result2 = instance1.equals(instance2);
boolean expResult3 = false;
boolean result3 = instance2.equals(instance3);
boolean expResult4 = false;
boolean result4 = instance3.equals(instance4);
assertEquals(expResult1, result1);
assertEquals(expResult2, result2);
assertEquals(expResult3, result3);
assertEquals(expResult4, result4);
System.out.println();
}
@Test
public void testHashCode() {
System.out.println("hashCode()");
DynamicDouble instance1 = makeTree1();
DynamicDouble instance2 = makeTree1();
assertEquals(instance1.hashCode(), instance1.hashCode());
assertEquals(instance1.hashCode(), instance2.hashCode());
System.out.println("instance1.hashcode(): " + instance1.hashCode());
System.out.println("instance2.hashcode(): " + instance2.hashCode());
System.out.println();
}
@Test
public void testToString() {
System.out.println("toString()");
DynamicDouble instance = makeELboundsTree();
StringBuilder expResult = new StringBuilder("<");
expResult.append("[0.1, 0.2, 1.0); ");
expResult.append("[0.2, 0.3, 2.0); ");
expResult.append("(0.3, 0.4, 3.0)");
expResult.append(">");
String result = instance.toString();
assertEquals(expResult.toString(), result);
System.out.println("expResult: " + expResult);
System.out.println("result: " + result);
System.out.println();
}
@Test
public void testDeserialization() {
System.out.println("deserialization");
DynamicDouble instance1 = makeELboundsTree();
DynamicDouble instance2 = (DynamicDouble)AttributeType.DYNAMIC_DOUBLE.parse(instance1.toString());
DynamicDouble instance3 = new DynamicDouble();
DynamicDouble instance4 = (DynamicDouble)AttributeType.DYNAMIC_DOUBLE.parse(instance3.toString());
TimeInterval instance5 = makeTimeInterval();
TimeInterval instance6 = (TimeInterval)AttributeType.TIME_INTERVAL.parse(instance5.toString());
assertEquals(instance1, instance2);
assertEquals(instance3, instance4);
assertEquals(instance5, instance6);
System.out.println("instance1: " + instance1);
System.out.println("instance2: " + instance2);
System.out.println("instance3: " + instance3);
System.out.println("instance4: " + instance4);
System.out.println("instance5: " + instance5);
System.out.println("instance6: " + instance6);
System.out.println();
}
@Test
public void testOrder() {
DynamicInteger instance = new DynamicInteger();
instance = new DynamicInteger(instance, new Interval<Integer>(2009, 2010, 1));
instance = new DynamicInteger(instance, new Interval<Integer>(2006, 2007, 2));
instance = new DynamicInteger(instance, new Interval<Integer>(2001, 2002, 3));
List<Interval<Integer>> intervals = instance.getIntervals(Double.NEGATIVE_INFINITY, Double.POSITIVE_INFINITY);
assertEquals(new Interval<Integer>(2001, 2002, 3), intervals.get(0));
assertEquals(new Interval<Integer>(2006, 2007, 2), intervals.get(1));
assertEquals(new Interval<Integer>(2009, 2010, 1), intervals.get(2));
}
private TimeInterval makeTimeInterval() {
List<Interval> intervals = new ArrayList<Interval>();
intervals.add(new Interval<Double>(0.1, 0.2, false, true));
intervals.add(new Interval<Double>(0.2, 0.3, false, true));
intervals.add(new Interval<Double>(0.3, 0.4, true, true));
return new TimeInterval(intervals);
}
private DynamicDouble makeELboundsTree() {
List<Interval<Double>> intervals = new ArrayList<Interval<Double>>();
intervals.add(new Interval<Double>(0.1, 0.2, false, true, 1.0));
intervals.add(new Interval<Double>(0.2, 0.3, false, true, 2.0));
intervals.add(new Interval<Double>(0.3, 0.4, true, true, 3.0));
return new DynamicDouble(intervals);
}
private DynamicDouble makeTree1() {
List<Interval<Double>> intervals = new ArrayList<Interval<Double>>();
intervals.add(new Interval<Double>(26.0, 26.0, 9.0));
intervals.add(new Interval<Double>(0.0, 3.0, 0.0));
intervals.add(new Interval<Double>(6.0, 10.0, 2.0));
intervals.add(new Interval<Double>(5.0, 8.0, 1.0));
intervals.add(new Interval<Double>(8.0, 9.0, 3.0));
intervals.add(new Interval<Double>(17.0, 19.0, 6.0));
intervals.add(new Interval<Double>(16.0, 21.0, 5.0));
intervals.add(new Interval<Double>(15.0, 23.0, 4.0));
intervals.add(new Interval<Double>(25.0, 30.0, 8.0));
intervals.add(new Interval<Double>(19.0, 20.0, 7.0));
return new DynamicDouble(intervals);
}
private DynamicDouble makeTree1_in() {
List<Interval<Double>> intervals = new ArrayList<Interval<Double>>();
intervals.add(new Interval<Double>( 26.0, 26.0, 9.0));
intervals.add(new Interval<Double>( 0.0, 3.0, 0.0));
intervals.add(new Interval<Double>( 6.0, 10.0, 2.0));
intervals.add(new Interval<Double>( 5.0, 8.0, 1.0));
intervals.add(new Interval<Double>( 8.0, 9.0, 3.0));
intervals.add(new Interval<Double>( 17.0, 19.0, 6.0));
intervals.add(new Interval<Double>( 16.0, 21.0, 5.0));
intervals.add(new Interval<Double>( 15.0, 23.0, 4.0));
intervals.add(new Interval<Double>( 25.0, 30.0, 8.0));
intervals.add(new Interval<Double>( 19.0, 20.0, 7.0));
intervals.add(new Interval<Double>(-2.0, -1.0, 10.0));
return new DynamicDouble(intervals);
}
private DynamicDouble makeTree1_out() {
List<Interval<Double>> intervals = new ArrayList<Interval<Double>>();
return new DynamicDouble(intervals);
}
private DynamicDouble makeTree1_in_out() {
List<Interval<Double>> intervals = new ArrayList<Interval<Double>>();
intervals.add(new Interval<Double>(-2.0, -1.0, 10.0));
return new DynamicDouble(intervals);
}
private DynamicDouble makeTree2() {
List<Interval<Double>> intervals = new ArrayList<Interval<Double>>();
intervals.add(new Interval<Double>(3.0, 7.0, 0.0));
intervals.add(new Interval<Double>(4.0, 5.0, 1.0));
intervals.add(new Interval<Double>(6.0, 6.0, 2.0));
intervals.add(new Interval<Double>(9.0, 10.0, 3.0));
intervals.add(new Interval<Double>(11.0, 12.0, 4.0));
intervals.add(new Interval<Double>(15.0, 20.0, 5.0));
intervals.add(new Interval<Double>(16.0, 20.0, 6.0));
intervals.add(new Interval<Double>(18.0, 21.0, 7.0));
intervals.add(new Interval<Double>(24.0, 29.0, 8.0));
intervals.add(new Interval<Double>(30.0, 31.0, 9.0));
return new DynamicDouble(intervals);
}
private DynamicDouble makeTree3() {
List<Interval<Double>> intervals = new ArrayList<Interval<Double>>();
intervals.add(new Interval<Double>(0.0, 3.0, 0.0));
intervals.add(new Interval<Double>(5.0, 8.0, 1.0));
intervals.add(new Interval<Double>(6.0, 10.0, 2.0));
intervals.add(new Interval<Double>(8.0, 9.0, 3.0));
return new DynamicDouble(intervals);
}
private DynamicInteger makeTreeInteger() {
List<Interval<Integer>> intervals = new ArrayList<Interval<Integer>>();
intervals.add(new Interval<Integer>(0.0, 3.0, 0));
intervals.add(new Interval<Integer>(5.0, 8.0, 1));
intervals.add(new Interval<Integer>(6.0, 10.0, 2));
intervals.add(new Interval<Integer>(8.0, 9.0, 3));
intervals.add(new Interval<Integer>(15.0, 23.0, 4));
intervals.add(new Interval<Integer>(16.0, 21.0, 5));
intervals.add(new Interval<Integer>(17.0, 19.0, 6));
intervals.add(new Interval<Integer>(19.0, 20.0, 7));
intervals.add(new Interval<Integer>(25.0, 30.0, 8));
intervals.add(new Interval<Integer>(26.0, 26.0, 9));
return new DynamicInteger(intervals);
}
private DynamicBoolean makeTreeBoolean() {
List<Interval<Boolean>> intervals = new ArrayList<Interval<Boolean>>();
intervals.add(new Interval<Boolean>(0.0, 3.0, false));
intervals.add(new Interval<Boolean>(5.0, 8.0, false));
intervals.add(new Interval<Boolean>(6.0, 10.0, false));
intervals.add(new Interval<Boolean>(8.0, 9.0, false));
intervals.add(new Interval<Boolean>(15.0, 23.0, false));
intervals.add(new Interval<Boolean>(16.0, 21.0, false));
intervals.add(new Interval<Boolean>(17.0, 19.0, true));
intervals.add(new Interval<Boolean>(19.0, 20.0, true));
intervals.add(new Interval<Boolean>(25.0, 30.0, true));
intervals.add(new Interval<Boolean>(26.0, 26.0, true));
return new DynamicBoolean(intervals);
}
private DynamicCharacter makeTreeCharacter() {
List<Interval<Character>> intervals =
new ArrayList<Interval<Character>>();
intervals.add(new Interval<Character>(0.0, 3.0, '0'));
intervals.add(new Interval<Character>(5.0, 8.0, '1'));
intervals.add(new Interval<Character>(6.0, 10.0, '2'));
intervals.add(new Interval<Character>(8.0, 9.0, '3'));
intervals.add(new Interval<Character>(15.0, 23.0, '4'));
intervals.add(new Interval<Character>(16.0, 21.0, '5'));
intervals.add(new Interval<Character>(17.0, 19.0, '6'));
intervals.add(new Interval<Character>(19.0, 20.0, '7'));
intervals.add(new Interval<Character>(25.0, 30.0, '8'));
intervals.add(new Interval<Character>(26.0, 26.0, '9'));
return new DynamicCharacter(intervals);
}
private DynamicString makeTreeString() {
List<Interval<String>> intervals = new ArrayList<Interval<String>>();
intervals.add(new Interval<String>(0.0, 3.0, "0"));
intervals.add(new Interval<String>(5.0, 8.0, "1"));
intervals.add(new Interval<String>(6.0, 10.0, "2"));
intervals.add(new Interval<String>(8.0, 9.0, "3"));
intervals.add(new Interval<String>(15.0, 23.0, "4"));
intervals.add(new Interval<String>(16.0, 21.0, "5"));
intervals.add(new Interval<String>(17.0, 19.0, "6"));
intervals.add(new Interval<String>(19.0, 20.0, "7"));
intervals.add(new Interval<String>(25.0, 30.0, "8"));
intervals.add(new Interval<String>(26.0, 26.0, "9"));
intervals.add(new Interval<String>(26.0, 26.0, "0_repeat"));
intervals.add(new Interval<String>(27.0, 27.0, "0_repeat"));
return new DynamicString(intervals);
}
}
@@ -1,88 +0,0 @@
/*
Copyright 2008-2010 Gephi
Authors : Martin Škurla
Website : http://www.gephi.org
This file is part of Gephi.
DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
Copyright 2011 Gephi Consortium. All rights reserved.
The contents of this file are subject to the terms of either the GNU
General Public License Version 3 only ("GPL") or the Common
Development and Distribution License("CDDL") (collectively, the
"License"). You may not use this file except in compliance with the
License. You can obtain a copy of the License at
http://gephi.org/about/legal/license-notice/
or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the
specific language governing permissions and limitations under the
License. When distributing the software, include this License Header
Notice in each file and include the License files at
/cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the
License Header, with the fields enclosed by brackets [] replaced by
your own identifying information:
"Portions Copyrighted [year] [name of copyright owner]"
If you wish your version of this file to be governed by only the CDDL
or only the GPL Version 3, indicate your decision by adding
"[Contributor] elects to include this software in this distribution
under the [CDDL or GPL Version 3] license." If you do not indicate a
single choice of license, a recipient has the option to distribute
your version of this file under either the CDDL, the GPL Version 3 or
to extend the choice of license to its licensees as provided above.
However, if you add GPL Version 3 code and therefore, elected the GPL
Version 3 license, then the option applies only if the new code is
made subject to such option by the copyright holder.
Contributor(s):
Portions Copyrighted 2011 Gephi Consortium.
*/
package org.gephi.data.attributes.type;
import org.junit.Test;
import static org.junit.Assert.*;
/**
* @author Martin Škurla
*/
public class IntegerListTest {
@Test
public void testCreatingListFromStringWithDefaultSeparator() {
IntegerList list = new IntegerList("11,22;33");
assertEquals(list.size(), 3);
}
@Test
public void testCreatingListFromStringWithGivenSeparator() {
IntegerList list = new IntegerList("11/22/33", "/");
assertEquals(list.size(), 3);
}
@Test
public void testCreatingListFromPrimitiveArray() {
IntegerList list = new IntegerList(new int[] {11, 22, 33});
assertEquals(list.size(), 3);
}
@Test
public void testCreatingListFromWrapperArray() {
IntegerList list = new IntegerList(new Integer[] {11, 22, 33});
assertEquals(list.size(), 3);
}
@Test
public void testCreatingListFromEmptyPrimitiveArray() {
IntegerList list = new IntegerList(new int [0]);
assertEquals(list.size(), 0);
}
@Test
public void testCreatingListFromEmptyWrapperArray() {
IntegerList list = new IntegerList(new Integer [0]);
assertEquals(list.size(), 0);
}
}
@@ -1,88 +0,0 @@
/*
Copyright 2008-2010 Gephi
Authors : Martin Škurla
Website : http://www.gephi.org
This file is part of Gephi.
DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
Copyright 2011 Gephi Consortium. All rights reserved.
The contents of this file are subject to the terms of either the GNU
General Public License Version 3 only ("GPL") or the Common
Development and Distribution License("CDDL") (collectively, the
"License"). You may not use this file except in compliance with the
License. You can obtain a copy of the License at
http://gephi.org/about/legal/license-notice/
or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the
specific language governing permissions and limitations under the
License. When distributing the software, include this License Header
Notice in each file and include the License files at
/cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the
License Header, with the fields enclosed by brackets [] replaced by
your own identifying information:
"Portions Copyrighted [year] [name of copyright owner]"
If you wish your version of this file to be governed by only the CDDL
or only the GPL Version 3, indicate your decision by adding
"[Contributor] elects to include this software in this distribution
under the [CDDL or GPL Version 3] license." If you do not indicate a
single choice of license, a recipient has the option to distribute
your version of this file under either the CDDL, the GPL Version 3 or
to extend the choice of license to its licensees as provided above.
However, if you add GPL Version 3 code and therefore, elected the GPL
Version 3 license, then the option applies only if the new code is
made subject to such option by the copyright holder.
Contributor(s):
Portions Copyrighted 2011 Gephi Consortium.
*/
package org.gephi.data.attributes.type;
import org.junit.Test;
import static org.junit.Assert.*;
/**
* @author Martin Škurla
*/
public class StringListTest {
@Test
public void testCreatingListFromStringWithDefaultSeparator() {
StringList list = new StringList("aa,bb;cc");
assertEquals(list.size(), 3);
}
@Test
public void testCreatingListFromStringWithGivenSeparator() {
StringList list = new StringList("aa/bb/cc", "/");
assertEquals(list.size(), 3);
}
@Test
public void testCreatingListFromStringArray() {
StringList list = new StringList(new String[] {"aa", "bb", "cc"});
assertEquals(list.size(), 3);
}
@Test
public void testCreatingListFromCharArray() {
StringList list = new StringList(new char[] {'a', 'b', 'c'});
assertEquals(list.size(), 3);
}
@Test
public void testCreatingListFromEmptyStringArray() {
StringList list = new StringList(new String[0]);
assertEquals(list.size(), 0);
}
@Test
public void testCreatingListFromEmptyCharArray() {
StringList list = new StringList(new char[0]);
assertEquals(list.size(), 0);
}
}
@@ -1,113 +0,0 @@
/*
Copyright 2008-2010 Gephi
Authors : Martin Škurla
Website : http://www.gephi.org
This file is part of Gephi.
DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
Copyright 2011 Gephi Consortium. All rights reserved.
The contents of this file are subject to the terms of either the GNU
General Public License Version 3 only ("GPL") or the Common
Development and Distribution License("CDDL") (collectively, the
"License"). You may not use this file except in compliance with the
License. You can obtain a copy of the License at
http://gephi.org/about/legal/license-notice/
or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the
specific language governing permissions and limitations under the
License. When distributing the software, include this License Header
Notice in each file and include the License files at
/cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the
License Header, with the fields enclosed by brackets [] replaced by
your own identifying information:
"Portions Copyrighted [year] [name of copyright owner]"
If you wish your version of this file to be governed by only the CDDL
or only the GPL Version 3, indicate your decision by adding
"[Contributor] elects to include this software in this distribution
under the [CDDL or GPL Version 3] license." If you do not indicate a
single choice of license, a recipient has the option to distribute
your version of this file under either the CDDL, the GPL Version 3 or
to extend the choice of license to its licensees as provided above.
However, if you add GPL Version 3 code and therefore, elected the GPL
Version 3 license, then the option applies only if the new code is
made subject to such option by the copyright holder.
Contributor(s):
Portions Copyrighted 2011 Gephi Consortium.
*/
package org.gephi.data.attributes.type;
import java.math.BigInteger;
import org.junit.Test;
import static org.junit.Assert.*;
/**
* @author Martin Škurla
*/
public class TypeConvertorTest {
@Test
public void testCreatingInstanceFromStringUsingConversionMethod() {
int result = TypeConvertor.createInstanceFromString("123", Integer.class);
assertEquals(result, 123);
}
@Test
public void testCreatingInstanceFromStringUsingConstructor() {
BigInteger result = TypeConvertor.createInstanceFromString("123", BigInteger.class);
assertEquals(result, new BigInteger("123"));
}
@Test(expected=IllegalArgumentException.class)
public void testCreatingInstanceFromStringThroughInappropriateObject() {
TypeConvertor.createInstanceFromString("some text", Object.class);
}
@Test
public void testCreatingArrayFromString() {
Integer[] result = TypeConvertor.createArrayFromString("1;2;3;4;5", ";", Integer.class);
assertArrayEquals(result, new Integer[] {1, 2, 3, 4, 5});
}
@Test
public void testGettingWrapperFromPrimitive() {
Class<?>[] primitiveTypes = {byte.class, short.class, int.class, long.class,
float.class, double.class, boolean.class, char.class};
Class<?>[] wrapperTypes = {Byte.class, Short.class, Integer.class, Long.class,
Float.class, Double.class, Boolean.class, Character.class};
for (int index = 0; index < primitiveTypes.length; index++) {
Class<?> primitiveType = primitiveTypes[index];
Class<?> wrapperType = TypeConvertor.getWrapperFromPrimitive(primitiveType);
assertEquals(wrapperType, wrapperTypes[index]);
}
}
@Test(expected=IllegalArgumentException.class)
public void testGettingWrapperFromPrimitiveIllegalArgument() {
TypeConvertor.getWrapperFromPrimitive(String.class);
}
@Test
public void testConvertingPrimitiveToWrapperArray() {
Integer[] result = TypeConvertor.<Integer>convertPrimitiveToWrapperArray(new int[] {1, 2, 3, 4, 5, 6});
assertArrayEquals(result, new Integer[] {1, 2, 3, 4, 5, 6});
}
@Test(expected=IllegalArgumentException.class)
public void testConvertingPrimitiveToWrapperArrayArgumentNotArray() {
TypeConvertor.convertPrimitiveToWrapperArray(new Object());
}
@Test(expected=IllegalArgumentException.class)
public void testConvertingPrimitiveToWrapperArrayArgumentNotPrimitiveArray() {
TypeConvertor.convertPrimitiveToWrapperArray(new Object[0]);
}
}
-8
Ver Arquivo
@@ -1,8 +0,0 @@
<?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.data.attributes" default="netbeans" basedir=".">
<description>Builds, tests, and runs the project org.gephi.data.attributes.</description>
<import file="nbproject/build-impl.xml"/>
</project>
-6
Ver Arquivo
@@ -1,6 +0,0 @@
Manifest-Version: 1.0
AutoUpdate-Essential-Module: true
OpenIDE-Module: org.gephi.data.attributes
OpenIDE-Module-Localizing-Bundle: org/gephi/data/attributes/Bundle.properties
OpenIDE-Module-Specification-Version: 0.8.0.1
-45
Ver Arquivo
@@ -1,45 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
*** GENERATED FROM project.xml - DO NOT EDIT ***
*** EDIT ../build.xml INSTEAD ***
-->
<project name="org.gephi.data.attributes-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>
@@ -1,6 +0,0 @@
build.xml.data.CRC32=6cb52fcf
build.xml.script.CRC32=6ef893f6
build.xml.stylesheet.CRC32=a56c6a5b@1.45.1
nbproject/build-impl.xml.data.CRC32=6cb52fcf
nbproject/build-impl.xml.script.CRC32=311b5299
nbproject/build-impl.xml.stylesheet.CRC32=238281d1@1.45.1
@@ -1,6 +0,0 @@
javac.source=1.5
javac.compilerargs=-Xlint -Xlint:-serial
keystore=nbproject/private/keystore.ks
license.file=../gpl-3.0.txt
nbm.module.author=Gephi.org
nbm_alias=gephi
-68
Ver Arquivo
@@ -1,68 +0,0 @@
<?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.data.attributes</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.7</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.7</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.7</specification-version>
</run-dependency>
</dependency>
<dependency>
<code-name-base>org.netbeans.libs.junit4</code-name-base>
<build-prerequisite/>
<compile-dependency/>
<run-dependency>
<specification-version>1.6.1</specification-version>
</run-dependency>
</dependency>
<dependency>
<code-name-base>org.openide.util</code-name-base>
<build-prerequisite/>
<compile-dependency/>
<run-dependency>
<specification-version>8.6.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.3.1</specification-version>
</run-dependency>
</dependency>
</module-dependencies>
<test-dependencies>
<test-type>
<name>unit</name>
</test-type>
</test-dependencies>
<public-packages>
<package>org.gephi.data.attributes.spi</package>
</public-packages>
</data>
</configuration>
</project>
-1
Ver Arquivo
@@ -1 +0,0 @@
suite.dir=${basedir}/..
@@ -1,125 +0,0 @@
/*
Copyright 2008-2010 Gephi
Authors : Mathieu Bastian <mathieu.bastian@gephi.org>
Website : http://www.gephi.org
This file is part of Gephi.
DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
Copyright 2011 Gephi Consortium. All rights reserved.
The contents of this file are subject to the terms of either the GNU
General Public License Version 3 only ("GPL") or the Common
Development and Distribution License("CDDL") (collectively, the
"License"). You may not use this file except in compliance with the
License. You can obtain a copy of the License at
http://gephi.org/about/legal/license-notice/
or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the
specific language governing permissions and limitations under the
License. When distributing the software, include this License Header
Notice in each file and include the License files at
/cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the
License Header, with the fields enclosed by brackets [] replaced by
your own identifying information:
"Portions Copyrighted [year] [name of copyright owner]"
If you wish your version of this file to be governed by only the CDDL
or only the GPL Version 3, indicate your decision by adding
"[Contributor] elects to include this software in this distribution
under the [CDDL or GPL Version 3] license." If you do not indicate a
single choice of license, a recipient has the option to distribute
your version of this file under either the CDDL, the GPL Version 3 or
to extend the choice of license to its licensees as provided above.
However, if you add GPL Version 3 code and therefore, elected the GPL
Version 3 license, then the option applies only if the new code is
made subject to such option by the copyright holder.
Contributor(s):
Portions Copyrighted 2011 Gephi Consortium.
*/
package org.gephi.data.attributes;
import org.gephi.data.attributes.api.AttributeController;
import org.gephi.data.attributes.api.AttributeModel;
import org.gephi.data.attributes.model.IndexedAttributeModel;
import org.gephi.data.attributes.model.TemporaryAttributeModel;
import org.gephi.project.api.ProjectController;
import org.gephi.project.api.WorkspaceProvider;
import org.gephi.project.api.Workspace;
import org.gephi.project.api.WorkspaceListener;
import org.openide.util.Lookup;
import org.openide.util.lookup.ServiceProvider;
/**
*
* @author Mathieu Bastian
*/
@ServiceProvider(service = AttributeController.class)
public class AttributeContollerImpl implements AttributeController {
private ProjectController projectController;
public AttributeContollerImpl() {
projectController = Lookup.getDefault().lookup(ProjectController.class);
projectController.addWorkspaceListener(new WorkspaceListener() {
public void initialize(Workspace workspace) {
AttributeModel m = workspace.getLookup().lookup(AttributeModel.class);
if (m == null) {
workspace.add(new IndexedAttributeModel());
}
}
public void select(Workspace workspace) {
}
public void unselect(Workspace workspace) {
}
public void close(Workspace workspace) {
}
public void disable() {
}
});
if (projectController.getCurrentProject() != null) {
for (Workspace workspace : projectController.getCurrentProject().getLookup().lookup(WorkspaceProvider.class).getWorkspaces()) {
AttributeModel m = workspace.getLookup().lookup(AttributeModel.class);
if (m == null) {
workspace.add(new IndexedAttributeModel());
}
}
}
}
public AttributeModel getModel() {
Workspace workspace = projectController.getCurrentWorkspace();
if (workspace != null) {
AttributeModel model = workspace.getLookup().lookup(AttributeModel.class);
if (model != null) {
return model;
}
model = new IndexedAttributeModel();
workspace.add(model);
return model;
}
return null;
}
public AttributeModel getModel(Workspace workspace) {
AttributeModel model = workspace.getLookup().lookup(AttributeModel.class);
if (model != null) {
return model;
}
model = new IndexedAttributeModel();
workspace.add(model);
return model;
}
public AttributeModel newModel() {
TemporaryAttributeModel model = new TemporaryAttributeModel();
return model;
}
}
@@ -1,253 +0,0 @@
/*
Copyright 2008-2010 Gephi
Authors : Mathieu Bastian <mathieu.bastian@gephi.org>, Cezary Bartosiak
Website : http://www.gephi.org
This file is part of Gephi.
DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
Copyright 2011 Gephi Consortium. All rights reserved.
The contents of this file are subject to the terms of either the GNU
General Public License Version 3 only ("GPL") or the Common
Development and Distribution License("CDDL") (collectively, the
"License"). You may not use this file except in compliance with the
License. You can obtain a copy of the License at
http://gephi.org/about/legal/license-notice/
or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the
specific language governing permissions and limitations under the
License. When distributing the software, include this License Header
Notice in each file and include the License files at
/cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the
License Header, with the fields enclosed by brackets [] replaced by
your own identifying information:
"Portions Copyrighted [year] [name of copyright owner]"
If you wish your version of this file to be governed by only the CDDL
or only the GPL Version 3, indicate your decision by adding
"[Contributor] elects to include this software in this distribution
under the [CDDL or GPL Version 3] license." If you do not indicate a
single choice of license, a recipient has the option to distribute
your version of this file under either the CDDL, the GPL Version 3 or
to extend the choice of license to its licensees as provided above.
However, if you add GPL Version 3 code and therefore, elected the GPL
Version 3 license, then the option applies only if the new code is
made subject to such option by the copyright holder.
Contributor(s):
Portions Copyrighted 2011 Gephi Consortium.
*/
package org.gephi.data.attributes;
import org.gephi.data.attributes.api.AttributeColumn;
import org.gephi.data.attributes.api.AttributeEvent.EventType;
import org.gephi.data.attributes.api.AttributeOrigin;
import org.gephi.data.attributes.api.AttributeRow;
import org.gephi.data.attributes.api.AttributeType;
import org.gephi.data.attributes.api.AttributeValue;
import org.gephi.data.attributes.event.ValueEvent;
/**
*
* @author Mathieu Bastian
* @author Cezary Bartosiak
*/
public class AttributeRowImpl implements AttributeRow {
protected final Object object;
protected final AttributeTableImpl attributeTable;
protected AttributeValueImpl[] values;
protected int rowVersion = -1;
public AttributeRowImpl(AttributeTableImpl attributeTable, Object object) {
this.attributeTable = attributeTable;
this.object = object;
reset();
}
public void reset() {
rowVersion = attributeTable.getVersion();
int attSize = attributeTable.countColumns();
AttributeValueImpl[] newValues = new AttributeValueImpl[attSize];
for (int i = 0; i < attSize; i++) {
newValues[i] = attributeTable.getColumn(i).defaultValue;
}
this.values = newValues;
}
public void setValues(AttributeRow attributeRow) {
if (attributeRow == null) {
throw new NullPointerException();
}
AttributeValue[] attValues = attributeRow.getValues();
for (int i = 0; i < attValues.length; i++) {
setValue(attValues[i]);
}
}
public void setValue(int index, Object value) {
AttributeColumn column = attributeTable.getColumn(index);
if (column != null) {
setValue(column, value);
} else {
throw new IllegalArgumentException("The column doesn't exist");
}
}
public void setValue(String column, Object value) {
if (column == null) {
throw new NullPointerException("Column is null");
}
AttributeColumn attributeColumn = attributeTable.getColumn(column);
if (attributeColumn != null) {
setValue(attributeColumn, value);
} else {
//add column
AttributeType type = AttributeType.parse(value);
//System.out.println("parsed value type: " + value.getClass());
if (type != null) {
attributeColumn = attributeTable.addColumn(column, type);
setValue(attributeColumn, value);
}
}
}
public void setValue(AttributeColumn column, Object value) {
if (column == null) {
throw new NullPointerException("Column is null");
}
AttributeValue attValue = attributeTable.getFactory().newValue(column, value);
setValue(attValue);
}
public void setValue(AttributeValue value) {
AttributeColumn column = value.getColumn();
if (attributeTable.getColumn(column.getIndex()) != column) {
column = attributeTable.getColumn(column);
if (column == null) {
throw new IllegalArgumentException("The "+attributeTable.getName()+" value column "+value.getColumn().getId()+" with index "+value.getColumn().getIndex()+" doesn't exist");
}
value = attributeTable.getFactory().newValue(column, value.getValue());
}
setValue(column.getIndex(), (AttributeValueImpl) value);
}
private void setValue(int index, AttributeValueImpl value) {
updateColumns();
AttributeValueImpl oldValue = this.values[index];
this.values[index] = value;
if (!((oldValue == null && value == null) || (oldValue != null && oldValue.equals(value)))
&& index > 0 && !value.getColumn().getOrigin().equals(AttributeOrigin.COMPUTED)) { //0 is the index of node id and edge id cols, not useful to send these events
attributeTable.model.fireAttributeEvent(new ValueEvent(EventType.SET_VALUE, attributeTable, object, value));
}
}
public Object getValue(AttributeColumn column) {
if (column == null) {
throw new NullPointerException();
}
updateColumns();
int index = column.getIndex();
if (checkIndexRange(index)) {
AttributeValue val = values[index];
if (val.getColumn() == column) {
return val.getValue();
}
}
return null;
}
public Object getValue(int index) {
updateColumns();
if (checkIndexRange(index)) {
AttributeColumn attributeColumn = attributeTable.getColumn(index);
return getValue(attributeColumn);
}
return null;
}
public Object getValue(String column) {
updateColumns();
AttributeColumn attributeColumn = attributeTable.getColumn(column);
if (attributeColumn != null) {
return getValue(attributeColumn);
}
return null;
}
public AttributeValue[] getValues() {
return values;
}
public AttributeValue getAttributeValueAt(int index) {
if (checkIndexRange(index)) {
return values[index];
}
return null;
}
public int countValues() {
updateColumns();
return values.length;
}
public AttributeColumn getColumnAt(int index) {
updateColumns();
return attributeTable.getColumn(index);
}
public Object getObject() {
return object;
}
private void updateColumns() {
int tableVersion = attributeTable.getVersion();
if (rowVersion < tableVersion) {
//Need to update
AttributeColumnImpl[] columns = attributeTable.getColumns();
AttributeValueImpl[] newValues = new AttributeValueImpl[columns.length];
int j = 0;
for (int i = 0; i < columns.length; i++) {
AttributeColumnImpl tableCol = columns[i];
newValues[i] = tableCol.defaultValue;
while (j < values.length) {
AttributeValueImpl val = values[j++];
if (val.getColumn() == tableCol) {
newValues[i] = val;
break;
}
}
}
values = newValues;
//Upd version
rowVersion = tableVersion;
}
}
private boolean checkIndexRange(int index) {
return index < values.length && index >= 0;
}
public int getRowVersion() {
return rowVersion;
}
public void setRowVersion(int rowVersion) {
this.rowVersion = rowVersion;
}
public void setValues(AttributeValueImpl[] values) {
this.values = values;
}
}
@@ -1,284 +0,0 @@
/*
Copyright 2008-2010 Gephi
Authors : Mathieu Bastian <mathieu.bastian@gephi.org>, Martin Škurla <bujacik@gmail.com>
Website : http://www.gephi.org
This file is part of Gephi.
DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
Copyright 2011 Gephi Consortium. All rights reserved.
The contents of this file are subject to the terms of either the GNU
General Public License Version 3 only ("GPL") or the Common
Development and Distribution License("CDDL") (collectively, the
"License"). You may not use this file except in compliance with the
License. You can obtain a copy of the License at
http://gephi.org/about/legal/license-notice/
or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the
specific language governing permissions and limitations under the
License. When distributing the software, include this License Header
Notice in each file and include the License files at
/cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the
License Header, with the fields enclosed by brackets [] replaced by
your own identifying information:
"Portions Copyrighted [year] [name of copyright owner]"
If you wish your version of this file to be governed by only the CDDL
or only the GPL Version 3, indicate your decision by adding
"[Contributor] elects to include this software in this distribution
under the [CDDL or GPL Version 3] license." If you do not indicate a
single choice of license, a recipient has the option to distribute
your version of this file under either the CDDL, the GPL Version 3 or
to extend the choice of license to its licensees as provided above.
However, if you add GPL Version 3 code and therefore, elected the GPL
Version 3 license, then the option applies only if the new code is
made subject to such option by the copyright holder.
Contributor(s):
Portions Copyrighted 2011 Gephi Consortium.
*/
package org.gephi.data.attributes;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.gephi.data.attributes.api.AttributeTable;
import org.gephi.data.attributes.api.AttributeColumn;
import org.gephi.data.attributes.api.AttributeEvent;
import org.gephi.data.attributes.api.AttributeOrigin;
import org.gephi.data.attributes.api.AttributeType;
import org.gephi.data.attributes.event.ColumnEvent;
import org.gephi.data.attributes.spi.AttributeValueDelegateProvider;
import org.gephi.data.attributes.type.TypeConvertor;
import org.gephi.data.properties.PropertiesColumn;
/**
*
* @author Mathieu Bastian
* @author Martin Škurla
*/
public class AttributeTableImpl implements AttributeTable {
protected String name;
protected final AbstractAttributeModel model;
//Listeners
//Columns
protected final List<AttributeColumnImpl> columns = new ArrayList<AttributeColumnImpl>();
protected final Map<AttributeColumn, AttributeColumn> columnsSet = new HashMap<AttributeColumn, AttributeColumn>();
protected final Map<String, AttributeColumnImpl> columnsMap = new HashMap<String, AttributeColumnImpl>();
//Version
protected int version = 0;
public AttributeTableImpl(AbstractAttributeModel model, String name) {
this.name = name;
this.model = model;
}
public synchronized AttributeColumnImpl[] getColumns() {
return columns.toArray(new AttributeColumnImpl[]{});
}
public synchronized int countColumns() {
return columns.size();
}
public AttributeColumn addPropertiesColumn(PropertiesColumn propertiesColumn) {
return addColumn(propertiesColumn.getId(),
propertiesColumn.getTitle(),
propertiesColumn.getType(),
propertiesColumn.getOrigin(),
propertiesColumn.getDefaultValue());
}
public AttributeColumnImpl addColumn(String id, AttributeType type) {
return addColumn(id, id, type, AttributeOrigin.DATA, null, null);
}
public AttributeColumnImpl addColumn(String id, AttributeType type, AttributeOrigin origin) {
return addColumn(id, id, type, origin, null, null);
}
public AttributeColumnImpl addColumn(String id, String title, AttributeType type, AttributeOrigin origin, Object defaultValue) {
return addColumn(id, title, type, origin, defaultValue, null);
}
public AttributeColumn addColumn(String id, String title, AttributeType type, AttributeValueDelegateProvider attributeValueDelegateProvider, Object defaultValue) {
return addColumn(id, title, type, AttributeOrigin.DELEGATE, defaultValue, attributeValueDelegateProvider);
}
private synchronized AttributeColumnImpl addColumn(String id, String title, AttributeType type, AttributeOrigin origin, Object defaultValue, AttributeValueDelegateProvider attributeValueDelegateProvider) {
if (title == null || title.isEmpty() || hasColumn(title)) {
throw new IllegalArgumentException("The title can't be null, empty or already existing in the table");
}
if (defaultValue != null) {
if (defaultValue.getClass() != type.getType()) {
if (defaultValue.getClass() == String.class) {
defaultValue = type.parse((String) defaultValue);
} else {
throw new IllegalArgumentException("The default value type cannot be cast to the type");
}
}
defaultValue = model.getManagedValue(defaultValue, type);
}
AttributeColumnImpl column = new AttributeColumnImpl(this, columns.size(), id, title, type, origin, defaultValue, attributeValueDelegateProvider);
columns.add(column);
columnsMap.put(id, column);
if (title != null && !title.equals(id)) {
columnsMap.put(title, column);
}
columnsSet.put(column, column);
//Version
version++;
model.fireAttributeEvent(
new ColumnEvent(AttributeEvent.EventType.ADD_COLUMN, column));
return column;
}
public synchronized void removeColumn(AttributeColumn column) {
int index = columns.indexOf(column);
if (index == -1) {
return;
}
//update indexes of the next columns of the one to delete:
AttributeColumnImpl c;
for (index = index + 1; index < columns.size(); index++) {
c = columns.get(index);
c.index--;
}
//Remove from collections
columns.remove((AttributeColumnImpl) column);
columnsMap.remove(column.getId());
if (column.getTitle() != null && !column.getTitle().equals(column.getId())) {
columnsMap.remove(column.getTitle());
}
columnsSet.remove(column);
model.fireAttributeEvent(
new ColumnEvent(AttributeEvent.EventType.REMOVE_COLUMN, (AttributeColumnImpl) column));
//Version
version++;
}
public synchronized AttributeColumn replaceColumn(AttributeColumn source, AttributeColumnImpl targetImpl) {
int index = columns.indexOf(source);
if (index == -1) {
return null;
}
//Remove from collections
columnsMap.remove(source.getId());
if (source.getTitle() != null && !source.getTitle().equals(source.getId())) {
columnsMap.remove(source.getTitle());
}
columnsSet.remove(source);
//Add
targetImpl.index = index;
columns.set(index, targetImpl);
columnsMap.put(targetImpl.id, targetImpl);
if (targetImpl.title != null && !targetImpl.title.equals(targetImpl.id)) {
columnsMap.put(targetImpl.title.toLowerCase(), targetImpl);
}
columnsSet.put(targetImpl, targetImpl);
//Version
version++;
return targetImpl;
}
public synchronized AttributeColumn replaceColumn(AttributeColumn source, String id, String title, AttributeType type, AttributeOrigin origin, Object defaultValue) {
if (defaultValue != null) {
if (defaultValue.getClass() != type.getType()) {
if (defaultValue.getClass() == String.class) {
defaultValue = type.parse((String) defaultValue);
} else {
throw new IllegalArgumentException("The default value type cannot be cast to the type");
}
}
defaultValue = model.getManagedValue(defaultValue, type);
}
AttributeColumnImpl targetImpl = new AttributeColumnImpl(this, columns.size(), id, title, type, origin, defaultValue, null);
return replaceColumn(source, targetImpl);
}
public synchronized AttributeColumnImpl getColumn(int index) {
if (index >= 0 && index < columns.size()) {
return columns.get(index);
}
return null;
}
public synchronized AttributeColumnImpl getColumn(String id) {
AttributeColumnImpl col = columnsMap.get(id);
if (col == null) {
return columnsMap.get(id.toLowerCase());
}
return col;
}
public synchronized AttributeColumnImpl getColumn(String title, AttributeType type) {
AttributeColumnImpl c = columnsMap.get(title.toLowerCase());
if (c != null && c.getType().equals(type)) {
return c;
}
return null;
}
public synchronized AttributeColumn getColumn(AttributeColumn column) {
return columnsSet.get(column);
}
public synchronized boolean hasColumn(String title) {
return columnsMap.containsKey(title) || columnsMap.containsKey(title.toLowerCase());
}
public synchronized int getVersion() {
return version;
}
public void setVersion(int version) {
this.version = version;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public AttributeFactoryImpl getFactory() {
return model.getFactory();
}
public AbstractAttributeModel getModel() {
return model;
}
public synchronized void mergeTable(AttributeTable table) {
for (AttributeColumn column : table.getColumns()) {
AttributeColumn existingCol = getColumn(column);
if (existingCol == null) {
existingCol = getColumn(column.getTitle());
}
if (existingCol == null) {
addColumn(column.getId(), column.getTitle(), column.getType(), column.getOrigin(), column.getDefaultValue());
} else if (column.getType().isDynamicType() && TypeConvertor.getStaticType(column.getType()).equals(existingCol.getType())) {
//The column exists but has the underlying static type
//Change type
AttributeColumnImpl newCol = new AttributeColumnImpl(this, existingCol.getIndex(), existingCol.getId(), existingCol.getTitle(), column.getType(), existingCol.getOrigin(), column.getDefaultValue(), null);
replaceColumn(existingCol, newCol);
}
}
}
}
@@ -1,113 +0,0 @@
/*
Copyright 2008-2010 Gephi
Authors : Mathieu Bastian <mathieu.bastian@gephi.org>, Martin Škurla <bujacik@gmail.com>
Website : http://www.gephi.org
This file is part of Gephi.
DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
Copyright 2011 Gephi Consortium. All rights reserved.
The contents of this file are subject to the terms of either the GNU
General Public License Version 3 only ("GPL") or the Common
Development and Distribution License("CDDL") (collectively, the
"License"). You may not use this file except in compliance with the
License. You can obtain a copy of the License at
http://gephi.org/about/legal/license-notice/
or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the
specific language governing permissions and limitations under the
License. When distributing the software, include this License Header
Notice in each file and include the License files at
/cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the
License Header, with the fields enclosed by brackets [] replaced by
your own identifying information:
"Portions Copyrighted [year] [name of copyright owner]"
If you wish your version of this file to be governed by only the CDDL
or only the GPL Version 3, indicate your decision by adding
"[Contributor] elects to include this software in this distribution
under the [CDDL or GPL Version 3] license." If you do not indicate a
single choice of license, a recipient has the option to distribute
your version of this file under either the CDDL, the GPL Version 3 or
to extend the choice of license to its licensees as provided above.
However, if you add GPL Version 3 code and therefore, elected the GPL
Version 3 license, then the option applies only if the new code is
made subject to such option by the copyright holder.
Contributor(s):
Portions Copyrighted 2011 Gephi Consortium.
*/
package org.gephi.data.attributes;
import org.gephi.data.attributes.api.AttributeOrigin;
import org.gephi.data.attributes.api.AttributeValue;
import org.gephi.data.attributes.spi.AttributeValueDelegateProvider;
/**
*
* @author Mathieu Bastian
* @author Martin Škurla
*/
public final class AttributeValueImpl implements AttributeValue {
private final AttributeColumnImpl column;
private final Object value;
public AttributeValueImpl(AttributeColumnImpl column, Object value) {
this.column = column;
this.value = value;
}
public AttributeColumnImpl getColumn() {
return column;
}
public Object getValue() {
if (column.getOrigin() != AttributeOrigin.DELEGATE) {
return value;
}
else {
if (value == null)
return null;
AttributeValueDelegateProvider attributeValueDelegateProvider = column.getProvider();
Object result;
if (AttributeUtilsImpl.getDefault().isEdgeColumn(column))
result = attributeValueDelegateProvider.getEdgeAttributeValue(value, column);
else if (AttributeUtilsImpl.getDefault().isNodeColumn(column))
result = attributeValueDelegateProvider.getNodeAttributeValue(value, column);
else
throw new AssertionError();
// important for Neo4j and in future also for other storing engines
// the conversion can be necessary because of types mismatch
// for Neo4j return type can be array of primitive type which must be
// converted into List type
if (result.getClass().isArray())
result = ListFactory.fromArray(result);
return result;
}
}
@Override
public boolean equals(Object obj) {
if (obj != null && obj instanceof AttributeValue) {
if (this == obj) {
return true;
}
Object thisVal = this.getValue();
Object objVal = ((AttributeValue) obj).getValue();
if (thisVal == null && objVal == null) {
return true;
}
if (thisVal != null && objVal != null && thisVal.equals(objVal)) {
return true;
}
}
return false;
}
}
@@ -1,5 +0,0 @@
OpenIDE-Module-Display-Category=Gephi Core
OpenIDE-Module-Name=Attributes Impl
NodeAttributeTable.name = Nodes
EdgeAttributeTable.name = Edges
OpenIDE-Module-Short-Description=Attributes API default implementation.
@@ -1,13 +0,0 @@
# Translation file for Gephi.
# Copyright (C) 2011 Gephi contributors.
# This file is distributed under the same license as the Gephi package.
#
# Translators:
# FIRST AUTHOR <EMAIL@ADDRESS>, 2010.
!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://bugs.launchpad.net/gephi\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2011-08-06 14\:30+0000\nLast-Translator\: gephi <sebastien.heymann@gmail.com>\nLanguage-Team\: Spanish (Castilian) (http\://www.transifex.net/projects/p/gephi/team/es/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: es\nPlural-Forms\: nplurals\=2; plural\=(n \!\= 1)\n
NodeAttributeTable.name=Nodos
EdgeAttributeTable.name=Aristas
OpenIDE-Module-Short-Description=Implementaci\u00f3n por defecto del m\u00f3dulo Attributes API
@@ -1,13 +0,0 @@
# Translation file for Gephi.
# Copyright (C) 2011 Gephi contributors.
# This file is distributed under the same license as the Gephi package.
#
# Translators:
# FIRST AUTHOR <EMAIL@ADDRESS>, 2010.
!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://bugs.launchpad.net/gephi\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2011-08-06 14\:30+0000\nLast-Translator\: gephi <sebastien.heymann@gmail.com>\nLanguage-Team\: French (http\://www.transifex.net/projects/p/gephi/team/fr/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: fr\nPlural-Forms\: nplurals\=2; plural\=(n > 1)\n
NodeAttributeTable.name=Noeuds
EdgeAttributeTable.name=Liens
OpenIDE-Module-Short-Description=Impl\u00e9mentation standard du module Attributes API
@@ -1,13 +0,0 @@
# Translation file for Gephi.
# Copyright (C) 2011 Gephi contributors.
# This file is distributed under the same license as the Gephi package.
#
# Translators:
# Siro Kida <kida.siro@gmail.com>, 2011.
!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://bugs.launchpad.net/gephi\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2011-09-03 10\:59+0000\nLast-Translator\: sarang <kida.siro@gmail.com>\nLanguage-Team\: Japanese (http\://www.transifex.net/projects/p/gephi/team/ja/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: ja\nPlural-Forms\: nplurals\=1; plural\=0\n
NodeAttributeTable.name=\u30ce\u30fc\u30c9
EdgeAttributeTable.name=\u8fba
OpenIDE-Module-Short-Description=\u5c5e\u6027API\u306e\u30c7\u30d5\u30a9\u30eb\u30c8\u306e\u5b9f\u88c5
@@ -1,13 +0,0 @@
# Translation file for Gephi.
# Copyright (C) 2011 Gephi contributors.
# This file is distributed under the same license as the Gephi package.
#
# Translators:
# C\u00e9lio CJr <celiofariajr@gmail.com>, 2011.
!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://bugs.launchpad.net/gephi\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2011-08-06 23\:31+0000\nLast-Translator\: celiofariajr <celiofariajr@gmail.com>\nLanguage-Team\: Portuguese (Brazilian) (http\://www.transifex.net/projects/p/gephi/team/pt_BR/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: pt_BR\nPlural-Forms\: nplurals\=2; plural\=(n > 1)\n
NodeAttributeTable.name=N\u00f3s
EdgeAttributeTable.name=Arestas
OpenIDE-Module-Short-Description=Implementa\u00e7\u00e3o padr\u00e3o da API Attributes.
@@ -1,12 +0,0 @@
# Russian translation for gephi
# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010
# This file is distributed under the same license as the gephi package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2010.
#
!=Project-Id-Version\: gephi\nReport-Msgid-Bugs-To\: FULL NAME <EMAIL@ADDRESS>\nPOT-Creation-Date\: 2010-04-07 13\:16+0200\nPO-Revision-Date\: 2010-12-01 08\:17+0000\nLast-Translator\: Altsoph <Unknown>\nLanguage-Team\: Russian <ru@li.org>\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nX-Launchpad-Export-Date\: 2011-03-13 04\:46+0000\nX-Generator\: Launchpad (build 12559)\n
NodeAttributeTable.name=\u0412\u0435\u0440\u0448\u0438\u043d\u044b
EdgeAttributeTable.name=\u0420\u0451\u0431\u0440\u0430
OpenIDE-Module-Short-Description=\u0421\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0435 API \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u0430\u043c\u0438
@@ -1,30 +0,0 @@
# Translation file for Gephi.
# Copyright (C) 2011 Gephi contributors.
# This file is distributed under the same license as the Gephi package.
#
# Translators:
# FIRST AUTHOR <EMAIL@ADDRESS>, 2010.
msgid ""
msgstr ""
"Project-Id-Version: Gephi\n"
"Report-Msgid-Bugs-To: https://bugs.launchpad.net/gephi\n"
"POT-Creation-Date: 2011-08-05 14:52+0200\n"
"PO-Revision-Date: 2011-08-06 14:30+0000\n"
"Last-Translator: gephi <sebastien.heymann@gmail.com>\n"
"Language-Team: Spanish (Castilian) (http://www.transifex.net/projects/p/gephi/team/es/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: es\n"
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
msgid "NodeAttributeTable.name"
msgstr "Nodos"
msgid "EdgeAttributeTable.name"
msgstr "Aristas"
msgid "OpenIDE-Module-Short-Description"
msgstr "Implementación por defecto del módulo Attributes API"
@@ -1,30 +0,0 @@
# Translation file for Gephi.
# Copyright (C) 2011 Gephi contributors.
# This file is distributed under the same license as the Gephi package.
#
# Translators:
# FIRST AUTHOR <EMAIL@ADDRESS>, 2010.
msgid ""
msgstr ""
"Project-Id-Version: Gephi\n"
"Report-Msgid-Bugs-To: https://bugs.launchpad.net/gephi\n"
"POT-Creation-Date: 2011-08-05 14:52+0200\n"
"PO-Revision-Date: 2011-08-06 14:30+0000\n"
"Last-Translator: gephi <sebastien.heymann@gmail.com>\n"
"Language-Team: French (http://www.transifex.net/projects/p/gephi/team/fr/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: fr\n"
"Plural-Forms: nplurals=2; plural=(n > 1)\n"
msgid "NodeAttributeTable.name"
msgstr "Noeuds"
msgid "EdgeAttributeTable.name"
msgstr "Liens"
msgid "OpenIDE-Module-Short-Description"
msgstr "Implémentation standard du module Attributes API"
@@ -1,30 +0,0 @@
# Translation file for Gephi.
# Copyright (C) 2011 Gephi contributors.
# This file is distributed under the same license as the Gephi package.
#
# Translators:
# Siro Kida <kida.siro@gmail.com>, 2011.
msgid ""
msgstr ""
"Project-Id-Version: Gephi\n"
"Report-Msgid-Bugs-To: https://bugs.launchpad.net/gephi\n"
"POT-Creation-Date: 2011-08-05 14:52+0200\n"
"PO-Revision-Date: 2011-09-03 10:59+0000\n"
"Last-Translator: sarang <kida.siro@gmail.com>\n"
"Language-Team: Japanese (http://www.transifex.net/projects/p/gephi/team/ja/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: ja\n"
"Plural-Forms: nplurals=1; plural=0\n"
msgid "NodeAttributeTable.name"
msgstr "ノード"
msgid "EdgeAttributeTable.name"
msgstr "辺"
msgid "OpenIDE-Module-Short-Description"
msgstr "属性APIのデフォルトの実装"
@@ -1,30 +0,0 @@
# Translation file for Gephi.
# Copyright (C) 2011 Gephi contributors.
# This file is distributed under the same license as the Gephi package.
#
# Translators:
# Célio CJr <celiofariajr@gmail.com>, 2011.
msgid ""
msgstr ""
"Project-Id-Version: Gephi\n"
"Report-Msgid-Bugs-To: https://bugs.launchpad.net/gephi\n"
"POT-Creation-Date: 2011-08-05 14:52+0200\n"
"PO-Revision-Date: 2011-08-06 23:31+0000\n"
"Last-Translator: celiofariajr <celiofariajr@gmail.com>\n"
"Language-Team: Portuguese (Brazilian) (http://www.transifex.net/projects/p/gephi/team/pt_BR/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: pt_BR\n"
"Plural-Forms: nplurals=2; plural=(n > 1)\n"
msgid "NodeAttributeTable.name"
msgstr "Nós"
msgid "EdgeAttributeTable.name"
msgstr "Arestas"
msgid "OpenIDE-Module-Short-Description"
msgstr "Implementação padrão da API Attributes."
@@ -1,189 +0,0 @@
/*
Copyright 2008-2010 Gephi
Authors : Mathieu Bastian <mathieu.bastian@gephi.org>
Website : http://www.gephi.org
This file is part of Gephi.
DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
Copyright 2011 Gephi Consortium. All rights reserved.
The contents of this file are subject to the terms of either the GNU
General Public License Version 3 only ("GPL") or the Common
Development and Distribution License("CDDL") (collectively, the
"License"). You may not use this file except in compliance with the
License. You can obtain a copy of the License at
http://gephi.org/about/legal/license-notice/
or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the
specific language governing permissions and limitations under the
License. When distributing the software, include this License Header
Notice in each file and include the License files at
/cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the
License Header, with the fields enclosed by brackets [] replaced by
your own identifying information:
"Portions Copyrighted [year] [name of copyright owner]"
If you wish your version of this file to be governed by only the CDDL
or only the GPL Version 3, indicate your decision by adding
"[Contributor] elects to include this software in this distribution
under the [CDDL or GPL Version 3] license." If you do not indicate a
single choice of license, a recipient has the option to distribute
your version of this file under either the CDDL, the GPL Version 3 or
to extend the choice of license to its licensees as provided above.
However, if you add GPL Version 3 code and therefore, elected the GPL
Version 3 license, then the option applies only if the new code is
made subject to such option by the copyright holder.
Contributor(s):
Portions Copyrighted 2011 Gephi Consortium.
*/
package org.gephi.data.attributes.serialization;
import javax.xml.stream.XMLStreamException;
import javax.xml.stream.XMLStreamReader;
import javax.xml.stream.XMLStreamWriter;
import org.gephi.data.attributes.AbstractAttributeModel;
import org.gephi.data.attributes.AttributeColumnImpl;
import org.gephi.data.attributes.AttributeRowImpl;
import org.gephi.data.attributes.AttributeTableImpl;
import org.gephi.data.attributes.api.AttributeType;
import org.gephi.data.attributes.api.AttributeValue;
import org.gephi.graph.api.Edge;
import org.gephi.graph.api.GraphModel;
import org.gephi.graph.api.HierarchicalGraph;
import org.gephi.graph.api.Node;
/**
*
* @author Mathieu Bastian
*/
public class AttributeRowSerializer {
private static final String ELEMENT_ROWS = "attributerows";
private static final String ELEMENT_NODE_ROW = "noderow";
private static final String ELEMENT_EDGE_ROW = "edgerow";
private static final String ELEMENT_VALUE = "attvalue";
public void writeRows(XMLStreamWriter writer, GraphModel graphModel) throws XMLStreamException {
writer.writeStartElement(ELEMENT_ROWS);
HierarchicalGraph hierarchicalGraph = graphModel.getHierarchicalGraph();
for (Node node : hierarchicalGraph.getNodesTree()) {
if (node.getNodeData().getAttributes() != null && node.getNodeData().getAttributes() instanceof AttributeRowImpl) {
AttributeRowImpl row = (AttributeRowImpl) node.getNodeData().getAttributes();
writer.writeStartElement(ELEMENT_NODE_ROW);
writer.writeAttribute("for", String.valueOf(node.getId()));
if (writeRow(writer, row)) {
writer.writeEndElement();
}
}
}
for (Node node : hierarchicalGraph.getNodesTree()) {
for (Edge edge : hierarchicalGraph.getEdges(node)) {
if (edge.getEdgeData().getAttributes() != null && edge.getEdgeData().getAttributes() instanceof AttributeRowImpl) {
AttributeRowImpl row = (AttributeRowImpl) edge.getEdgeData().getAttributes();
writer.writeStartElement(ELEMENT_EDGE_ROW);
writer.writeAttribute("for", String.valueOf(edge.getId()));
if (writeRow(writer, row)) {
writer.writeEndElement();
}
}
}
}
writer.writeEndElement();
}
public void readRows(XMLStreamReader reader, GraphModel graphModel, AbstractAttributeModel attributeModel) throws XMLStreamException {
HierarchicalGraph hierarchicalGraph = graphModel.getHierarchicalGraph();
boolean end = false;
while (reader.hasNext() && !end) {
int type = reader.next();
switch (type) {
case XMLStreamReader.START_ELEMENT:
String name = reader.getLocalName();
if (ELEMENT_NODE_ROW.equalsIgnoreCase(name)) {
int id = Integer.parseInt(reader.getAttributeValue(null, "for"));
Node node = hierarchicalGraph.getNode(id);
if (node.getNodeData().getAttributes() != null && node.getNodeData().getAttributes() instanceof AttributeRowImpl) {
AttributeRowImpl row = (AttributeRowImpl) node.getNodeData().getAttributes();
readRow(reader, attributeModel, attributeModel.getNodeTable(), row);
}
} else if (ELEMENT_EDGE_ROW.equalsIgnoreCase(name)) {
int id = Integer.parseInt(reader.getAttributeValue(null, "for"));
Edge edge = hierarchicalGraph.getEdge(id);
if (edge.getEdgeData().getAttributes() != null && edge.getEdgeData().getAttributes() instanceof AttributeRowImpl) {
AttributeRowImpl row = (AttributeRowImpl) edge.getEdgeData().getAttributes();
readRow(reader, attributeModel, attributeModel.getEdgeTable(), row);
}
}
break;
case XMLStreamReader.END_ELEMENT:
if (ELEMENT_ROWS.equalsIgnoreCase(reader.getLocalName())) {
end = true;
}
break;
}
}
}
public boolean writeRow(XMLStreamWriter writer, AttributeRowImpl row) throws XMLStreamException {
writer.writeAttribute("version", String.valueOf(row.getRowVersion()));
int writtenRows = 0;
for (AttributeValue value : row.getValues()) {
int index = value.getColumn().getIndex();
Object obj = value.getValue();
if (obj != null) {
writtenRows++;
writer.writeStartElement(ELEMENT_VALUE);
writer.writeAttribute("index", String.valueOf(index));
writer.writeCharacters(obj.toString());
writer.writeEndElement();
}
}
return writtenRows > 0;
}
public void readRow(XMLStreamReader reader, AbstractAttributeModel model, AttributeTableImpl table, AttributeRowImpl row) throws XMLStreamException {
row.setRowVersion(Integer.parseInt(reader.getAttributeValue(null, "version")));
AttributeColumnImpl col = null;
String value = "";
boolean end = false;
while (reader.hasNext() && !end) {
int t = reader.next();
switch (t) {
case XMLStreamReader.START_ELEMENT:
String name = reader.getLocalName();
if (ELEMENT_VALUE.equalsIgnoreCase(name)) {
col = (AttributeColumnImpl) table.getColumn(Integer.parseInt(reader.getAttributeValue(null, "index")));
}
break;
case XMLStreamReader.CHARACTERS:
if (!reader.isWhiteSpace() && col != null) {
value += reader.getText();
}
break;
case XMLStreamReader.END_ELEMENT:
if (ELEMENT_NODE_ROW.equalsIgnoreCase(reader.getLocalName()) || ELEMENT_EDGE_ROW.equalsIgnoreCase(reader.getLocalName())) {
end = true;
}
if (!value.isEmpty() && col != null) {
AttributeType type = col.getType();
Object v = type.parse(value);
v = model.getManagedValue(v, type);
row.setValue(col, v);
}
value = "";
col = null;
break;
}
}
}
}
@@ -1,187 +0,0 @@
/*
Copyright 2008-2010 Gephi
Authors : Mathieu Bastian <mathieu.bastian@gephi.org>
Website : http://www.gephi.org
This file is part of Gephi.
DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
Copyright 2011 Gephi Consortium. All rights reserved.
The contents of this file are subject to the terms of either the GNU
General Public License Version 3 only ("GPL") or the Common
Development and Distribution License("CDDL") (collectively, the
"License"). You may not use this file except in compliance with the
License. You can obtain a copy of the License at
http://gephi.org/about/legal/license-notice/
or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the
specific language governing permissions and limitations under the
License. When distributing the software, include this License Header
Notice in each file and include the License files at
/cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the
License Header, with the fields enclosed by brackets [] replaced by
your own identifying information:
"Portions Copyrighted [year] [name of copyright owner]"
If you wish your version of this file to be governed by only the CDDL
or only the GPL Version 3, indicate your decision by adding
"[Contributor] elects to include this software in this distribution
under the [CDDL or GPL Version 3] license." If you do not indicate a
single choice of license, a recipient has the option to distribute
your version of this file under either the CDDL, the GPL Version 3 or
to extend the choice of license to its licensees as provided above.
However, if you add GPL Version 3 code and therefore, elected the GPL
Version 3 license, then the option applies only if the new code is
made subject to such option by the copyright holder.
Contributor(s):
Portions Copyrighted 2011 Gephi Consortium.
*/
package org.gephi.data.attributes;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.gephi.data.attributes.api.AttributeOrigin;
import org.gephi.data.attributes.api.AttributeRow;
import org.gephi.data.attributes.api.AttributeType;
import org.gephi.data.attributes.api.AttributeValue;
import org.gephi.data.attributes.model.TemporaryAttributeModel;
import org.gephi.data.attributes.type.StringList;
import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
import static org.junit.Assert.*;
/**
*
* @author Mathieu
*/
public class AttributeClassTest {
private AbstractAttributeModel manager;
private AttributeTableImpl nodeClass;
private AttributeFactoryImpl factory;
//Test map
private Map<String, AttributeColumnImpl> columnMap;
private List<AttributeRowImpl> rows;
public AttributeClassTest() {
}
@BeforeClass
public static void setUpClass() throws Exception {
}
@AfterClass
public static void tearDownClass() throws Exception {
}
@Before
public void setUp() {
manager = new TemporaryAttributeModel();//Id and Label columns are automatically created at indexes 0 and 1
nodeClass = manager.getNodeTable();
factory = new AttributeFactoryImpl(manager);
columnMap = new HashMap<String, AttributeColumnImpl>();
rows = new ArrayList<AttributeRowImpl>();
AttributeColumnImpl co1 = nodeClass.addColumn("col1", "Column 1", AttributeType.STRING, AttributeOrigin.DATA, "nil");
AttributeColumnImpl co2 = nodeClass.addColumn("col2", "Column 2", AttributeType.INT, AttributeOrigin.PROPERTY, 0);
AttributeColumnImpl co3 = nodeClass.addColumn("col3", "Column 3", AttributeType.LIST_STRING, AttributeOrigin.DATA, new StringList("nothing", ","));
AttributeColumnImpl co4 = nodeClass.addColumn("col4", "Column 4", AttributeType.STRING, AttributeOrigin.COMPUTED, "zero");
AttributeColumnImpl co5 = nodeClass.addColumn("col5", "Column 5", AttributeType.BOOLEAN, AttributeOrigin.DATA, true);
AttributeColumnImpl co6 = nodeClass.addColumn("col6", "Column 6", AttributeType.STRING, AttributeOrigin.DATA, "default");
columnMap.put("col1", co1);
columnMap.put("col2", co2);
columnMap.put("col3", co3);
columnMap.put("col4", co4);
columnMap.put("col5", co5);
columnMap.put("col6", co6);
//Rows
for (int i = 0; i < 10; i++) {
AttributeRowImpl r = factory.newNodeRow(null);
r.setValue(co1, "col1value " + i);
r.setValue("col2", i);
r.setValue("Column 3", null);
r.setValue(5, "col4value " + i);
r.setValue(factory.newValue(co5, false));
rows.add(r);
}
}
@After
public void tearDown() {
manager = null;
}
@Test
public void testGetColumn() {
assertSame(columnMap.get("col1"), nodeClass.getColumn("col1"));
assertSame(columnMap.get("col1"), nodeClass.getColumn("Column 1"));
assertSame(columnMap.get("col1"), nodeClass.getColumn(2));
assertTrue(nodeClass.hasColumn("col1"));
assertTrue(nodeClass.hasColumn("Column 1"));
}
@Test
public void testValues() {
int i = 0;
AttributeRow row = rows.get(0);
assertEquals("col1value 0", row.getValue(columnMap.get("col1")));
assertEquals(0, row.getValue(columnMap.get("col2")));
assertNull(row.getValue(columnMap.get("col3")));
assertEquals("col4value 0", row.getValue(columnMap.get("col4")));
assertEquals(false, row.getValue(columnMap.get("col5")));
assertEquals(columnMap.get("col6").getDefaultValue(), row.getValue(columnMap.get("col6")));
showValues(row);
}
@Test
public void testAddColumn() {
AttributeColumnImpl co7 = nodeClass.addColumn("col7", "Column 7", AttributeType.STRING, AttributeOrigin.DATA, "def");
columnMap.put("col7", co7);
//Test GetColumn
assertSame(co7, nodeClass.getColumn("col7"));
//Test value
AttributeRow row = rows.get(0);
assertEquals(columnMap.get("col7").getDefaultValue(), row.getValue(columnMap.get("col7")));
row.setValue(co7, "test");
assertEquals("test", row.getValue(columnMap.get("col7")));
showValues(row);
}
@Test
public void testDeleteColumn() {
nodeClass.removeColumn(columnMap.get("col4"));
//Test GetColumn
assertNull(nodeClass.getColumn("col4"));
//Test value
AttributeRow row = rows.get(0);
assertNull(row.getValue(columnMap.get("col4")));
showValues(row);
}
public void showValues(AttributeRow row) {
System.out.print("Values: ");
for (AttributeValue val : row.getValues()) {
System.out.print("#" + val.getValue() + " ");
}
System.out.println();
}
}
@@ -1,148 +0,0 @@
/*
Copyright 2008-2010 Gephi
Authors : Mathieu Bastian <mathieu.bastian@gephi.org>
Website : http://www.gephi.org
This file is part of Gephi.
DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
Copyright 2011 Gephi Consortium. All rights reserved.
The contents of this file are subject to the terms of either the GNU
General Public License Version 3 only ("GPL") or the Common
Development and Distribution License("CDDL") (collectively, the
"License"). You may not use this file except in compliance with the
License. You can obtain a copy of the License at
http://gephi.org/about/legal/license-notice/
or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the
specific language governing permissions and limitations under the
License. When distributing the software, include this License Header
Notice in each file and include the License files at
/cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the
License Header, with the fields enclosed by brackets [] replaced by
your own identifying information:
"Portions Copyrighted [year] [name of copyright owner]"
If you wish your version of this file to be governed by only the CDDL
or only the GPL Version 3, indicate your decision by adding
"[Contributor] elects to include this software in this distribution
under the [CDDL or GPL Version 3] license." If you do not indicate a
single choice of license, a recipient has the option to distribute
your version of this file under either the CDDL, the GPL Version 3 or
to extend the choice of license to its licensees as provided above.
However, if you add GPL Version 3 code and therefore, elected the GPL
Version 3 license, then the option applies only if the new code is
made subject to such option by the copyright holder.
Contributor(s):
Portions Copyrighted 2011 Gephi Consortium.
*/
package org.gephi.data.attributes;
import java.io.StringReader;
import javax.xml.stream.Location;
import javax.xml.stream.XMLInputFactory;
import javax.xml.stream.XMLOutputFactory;
import javax.xml.stream.XMLReporter;
import javax.xml.stream.XMLStreamException;
import javax.xml.stream.XMLStreamReader;
import javax.xml.stream.XMLStreamWriter;
import org.gephi.data.attributes.serialization.AttributeModelSerializer;
import java.io.StringWriter;
import org.gephi.data.attributes.api.AttributeOrigin;
import org.gephi.data.attributes.api.AttributeType;
import org.gephi.data.attributes.model.IndexedAttributeModel;
import org.gephi.data.attributes.type.StringList;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.openide.util.Exceptions;
import org.w3c.dom.Element;
import static org.junit.Assert.*;
/**
*
* @author Mathieu Bastian
*/
public class AttributeModelSerializerTest {
private IndexedAttributeModel model;
@Before
public void setUp() {
model = new IndexedAttributeModel();
AttributeTableImpl nodeTableImpl = model.getNodeTable();
nodeTableImpl.addColumn("id", "Identifier", AttributeType.INT, AttributeOrigin.DATA, new Integer(0));
nodeTableImpl.addColumn("url", AttributeType.STRING);
nodeTableImpl.addColumn("position", "Position&<>\"'$*", AttributeType.FLOAT, AttributeOrigin.PROPERTY, new Float(0));
nodeTableImpl.addColumn("cats", "Catégories", AttributeType.LIST_STRING, AttributeOrigin.DATA, new StringList("a,b,c,d"));
AttributeTableImpl edgeTableImpl = model.getEdgeTable();
edgeTableImpl.addColumn("name", AttributeType.STRING, AttributeOrigin.DATA);
//edgeTableImpl.addColumn("weight", AttributeType.DOUBLE, AttributeOrigin.DATA);
}
@After
public void tearDown() {
}
@Test
public void testSerializer() {
try {
AttributeModelSerializer serializer = new AttributeModelSerializer();
StringWriter stringWriter = new StringWriter();
XMLStreamWriter writer = createWriter(stringWriter);
serializer.writeModel(writer, model);
writer.close();
String s1 = stringWriter.toString();
System.out.println(s1);
IndexedAttributeModel model2 = new IndexedAttributeModel();
StringReader stringReader = new StringReader(s1);
XMLStreamReader reader = createReader(stringReader);
serializer.readModel(reader, model2);
stringWriter = new StringWriter();
writer = createWriter(stringWriter);
serializer.writeModel(writer, model2);
String s2 = stringWriter.toString();
System.out.println(s2);
assertEquals(s1, s2);
} catch (XMLStreamException ex) {
Exceptions.printStackTrace(ex);
}
}
private XMLStreamWriter createWriter(StringWriter stringWriter) {
XMLOutputFactory outputFactory = XMLOutputFactory.newInstance();
outputFactory.setProperty("javax.xml.stream.isRepairingNamespaces", Boolean.FALSE);
try {
XMLStreamWriter xmlWriter = outputFactory.createXMLStreamWriter(stringWriter);
xmlWriter.writeStartDocument("UTF-8", "1.0");
return xmlWriter;
} catch (XMLStreamException ex) {
Exceptions.printStackTrace(ex);
}
return null;
}
private XMLStreamReader createReader(StringReader stringReader) {
XMLInputFactory inputFactory = XMLInputFactory.newInstance();
if (inputFactory.isPropertySupported("javax.xml.stream.isValidating")) {
inputFactory.setProperty("javax.xml.stream.isValidating", Boolean.FALSE);
}
inputFactory.setXMLReporter(new XMLReporter() {
@Override
public void report(String message, String errorType, Object relatedInformation, Location location) throws XMLStreamException {
System.out.println("Error:" + errorType + ", message : " + message);
}
});
try {
return inputFactory.createXMLStreamReader(stringReader);
} catch (XMLStreamException ex) {
Exceptions.printStackTrace(ex);
}
return null;
}
}
@@ -1,185 +0,0 @@
/*
Copyright 2008-2010 Gephi
Authors : Mathieu Bastian <mathieu.bastian@gephi.org>
Website : http://www.gephi.org
This file is part of Gephi.
DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
Copyright 2011 Gephi Consortium. All rights reserved.
The contents of this file are subject to the terms of either the GNU
General Public License Version 3 only ("GPL") or the Common
Development and Distribution License("CDDL") (collectively, the
"License"). You may not use this file except in compliance with the
License. You can obtain a copy of the License at
http://gephi.org/about/legal/license-notice/
or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the
specific language governing permissions and limitations under the
License. When distributing the software, include this License Header
Notice in each file and include the License files at
/cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the
License Header, with the fields enclosed by brackets [] replaced by
your own identifying information:
"Portions Copyrighted [year] [name of copyright owner]"
If you wish your version of this file to be governed by only the CDDL
or only the GPL Version 3, indicate your decision by adding
"[Contributor] elects to include this software in this distribution
under the [CDDL or GPL Version 3] license." If you do not indicate a
single choice of license, a recipient has the option to distribute
your version of this file under either the CDDL, the GPL Version 3 or
to extend the choice of license to its licensees as provided above.
However, if you add GPL Version 3 code and therefore, elected the GPL
Version 3 license, then the option applies only if the new code is
made subject to such option by the copyright holder.
Contributor(s):
Portions Copyrighted 2011 Gephi Consortium.
*/
package org.gephi.data.attributes;
import java.util.ArrayList;
import java.util.List;
import org.gephi.data.attributes.api.AttributeColumn;
import org.gephi.data.attributes.api.AttributeEvent;
import org.gephi.data.attributes.api.AttributeListener;
import org.gephi.data.attributes.api.AttributeType;
import org.gephi.data.attributes.api.AttributeValue;
import org.gephi.data.attributes.event.AttributeEventManager;
import org.gephi.data.attributes.model.IndexedAttributeModel;
import org.junit.Test;
import org.openide.util.Exceptions;
/**
*
* @author Mathieu Bastian
*/
public class EventsTest {
private int countEvents = 0;
private int countElements = 0;
@Test
public void testEventsPerformance() {
IndexedAttributeModel attModel = new IndexedAttributeModel();
attModel.addAttributeListener(new AttributeListener() {
public void attributesChanged(AttributeEvent event) {
if(event.is(AttributeEvent.EventType.SET_VALUE)) {
countEvents++;
countElements+=event.getData().getTouchedValues().length;
}
}
});
//Add table
AttributeTableImpl table = new AttributeTableImpl(attModel, "table");
attModel.addTable(table);
//Add Column
AttributeColumnImpl col = table.addColumn("test", AttributeType.DOUBLE);
AttributeRowImpl r1 = attModel.getFactory().newRowForTable("table", 1.0);
AttributeRowImpl r2 = attModel.getFactory().newRowForTable("table", 1.0);
for(int i=0;i<1000000;i++) {
r1.setValue(col.getIndex(), Math.random());
r2.setValue(col.getIndex(), Math.random());
}
try {
Thread.sleep(1000);
} catch (InterruptedException ex) {
Exceptions.printStackTrace(ex);
}
System.out.println("Number events: "+countEvents+" with "+countElements+" elements touched");
}
@Test
public void testEvents() {
IndexedAttributeModel attModel = new IndexedAttributeModel();
EventCollector eventCollector = new EventCollector();
attModel.addAttributeListener(eventCollector);
//Add table
AttributeTableImpl table = new AttributeTableImpl(attModel, "table");
attModel.addTable(table);
//Add Column
AttributeColumnImpl col = table.addColumn("test", AttributeType.STRING);
//Create objects
Object o1 = new Object() {
@Override
public String toString() {
return "o1";
}
};
Object o2 = new Object() {
@Override
public String toString() {
return "o2";
}
};
AttributeRowImpl r1 = attModel.getFactory().newRowForTable("table", o1);
AttributeRowImpl r2 = attModel.getFactory().newRowForTable("table", o2);
//Set values
r1.setValue(col, "value 1");
r2.setValue(col, "value 2");
try {
Thread.sleep(10);
} catch (InterruptedException ex) {
Exceptions.printStackTrace(ex);
}
//Look events
eventCollector.print();
try {
Thread.sleep(1000);
} catch (InterruptedException ex) {
Exceptions.printStackTrace(ex);
}
}
private static class EventCollector implements AttributeListener {
private List<AttributeEvent> events = new ArrayList<AttributeEvent>();
public void attributesChanged(AttributeEvent event) {
events.add(event);
}
public void print() {
for (AttributeEvent e : events) {
System.out.println("Event: " + e.getEventType() + " source: " + e.getSource().getName());
switch (e.getEventType()) {
case ADD_COLUMN:
for (AttributeColumn c : e.getData().getAddedColumns()) {
System.out.println("-- "+c.getTitle());
}
break;
case REMOVE_COLUMN:
for (AttributeColumn c : e.getData().getRemovedColumns()) {
System.out.println("-- "+c.getTitle());
}
break;
case SET_VALUE:
for (int i = 0; i < e.getData().getTouchedValues().length; i++) {
AttributeValue val = e.getData().getTouchedValues()[i];
Object obj = e.getData().getTouchedObjects()[i];
System.out.println("-- Value '" + val.getValue() + "' set for '" + obj.toString() + "' in column '" + val.getColumn().getTitle() + "'");
}
break;
}
}
}
}
}
-201
Ver Arquivo
@@ -1,201 +0,0 @@
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "[]"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright [yyyy] [name of copyright owner]
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-8
Ver Arquivo
@@ -1,8 +0,0 @@
<?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.lib.batik" default="netbeans" basedir=".">
<description>Builds, tests, and runs the project org.gephi.lib.batik.</description>
<import file="nbproject/build-impl.xml"/>
</project>
-5
Ver Arquivo
@@ -1,5 +0,0 @@
Manifest-Version: 1.0
OpenIDE-Module: org.gephi.lib.batik
OpenIDE-Module-Localizing-Bundle: org/gephi/lib/batik/Bundle.properties
OpenIDE-Module-Specification-Version: 1.7
-45
Ver Arquivo
@@ -1,45 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
*** GENERATED FROM project.xml - DO NOT EDIT ***
*** EDIT ../build.xml INSTEAD ***
-->
<project name="org.gephi.lib.batik-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>
-8
Ver Arquivo
@@ -1,8 +0,0 @@
build.xml.data.CRC32=760d3c5b
build.xml.script.CRC32=1d17fb26
build.xml.stylesheet.CRC32=79c3b980@1.31.1.7
# 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=760d3c5b
nbproject/build-impl.xml.script.CRC32=5060c575
nbproject/build-impl.xml.stylesheet.CRC32=261c4bef@1.31.1.7
-4
Ver Arquivo
@@ -1,4 +0,0 @@
is.autoload=true
license.file=${basedir}/LICENSE
keystore=nbproject/private/keystore.ks
nbm_alias=gephi
-169
Ver Arquivo
@@ -1,169 +0,0 @@
<?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.lib.batik</code-name-base>
<suite-component/>
<module-dependencies/>
<public-packages>
<package>org.apache.avalon.framework</package>
<package>org.apache.avalon.framework.activity</package>
<package>org.apache.avalon.framework.configuration</package>
<package>org.apache.avalon.framework.container</package>
<package>org.apache.batik</package>
<package>org.apache.batik.anim</package>
<package>org.apache.batik.anim.timing</package>
<package>org.apache.batik.anim.values</package>
<package>org.apache.batik.bridge</package>
<package>org.apache.batik.bridge.svg12</package>
<package>org.apache.batik.css.dom</package>
<package>org.apache.batik.css.engine</package>
<package>org.apache.batik.css.engine.sac</package>
<package>org.apache.batik.css.engine.value</package>
<package>org.apache.batik.css.engine.value.css2</package>
<package>org.apache.batik.css.engine.value.svg</package>
<package>org.apache.batik.css.engine.value.svg12</package>
<package>org.apache.batik.css.parser</package>
<package>org.apache.batik.dom</package>
<package>org.apache.batik.dom.anim</package>
<package>org.apache.batik.dom.events</package>
<package>org.apache.batik.dom.svg</package>
<package>org.apache.batik.dom.svg12</package>
<package>org.apache.batik.dom.traversal</package>
<package>org.apache.batik.dom.util</package>
<package>org.apache.batik.dom.xbl</package>
<package>org.apache.batik.ext.awt</package>
<package>org.apache.batik.ext.awt.color</package>
<package>org.apache.batik.ext.awt.font</package>
<package>org.apache.batik.ext.awt.g2d</package>
<package>org.apache.batik.ext.awt.geom</package>
<package>org.apache.batik.ext.awt.image</package>
<package>org.apache.batik.ext.awt.image.renderable</package>
<package>org.apache.batik.ext.awt.image.rendered</package>
<package>org.apache.batik.ext.awt.image.spi</package>
<package>org.apache.batik.ext.swing</package>
<package>org.apache.batik.gvt</package>
<package>org.apache.batik.gvt.event</package>
<package>org.apache.batik.gvt.filter</package>
<package>org.apache.batik.gvt.flow</package>
<package>org.apache.batik.gvt.font</package>
<package>org.apache.batik.gvt.renderer</package>
<package>org.apache.batik.gvt.svg12</package>
<package>org.apache.batik.gvt.text</package>
<package>org.apache.batik.i18n</package>
<package>org.apache.batik.parser</package>
<package>org.apache.batik.script</package>
<package>org.apache.batik.script.rhino</package>
<package>org.apache.batik.script.rhino.svg12</package>
<package>org.apache.batik.transcoder</package>
<package>org.apache.batik.transcoder.image</package>
<package>org.apache.batik.transcoder.image.resources</package>
<package>org.apache.batik.transcoder.keys</package>
<package>org.apache.batik.transcoder.print</package>
<package>org.apache.batik.transcoder.svg2svg</package>
<package>org.apache.batik.transcoder.wmf</package>
<package>org.apache.batik.transcoder.wmf.tosvg</package>
<package>org.apache.batik.util</package>
<package>org.apache.batik.util.io</package>
<package>org.apache.batik.util.resources</package>
<package>org.apache.batik.xml</package>
<package>org.apache.commons.io</package>
<package>org.apache.commons.io.output</package>
<package>org.apache.commons.logging</package>
<package>org.apache.commons.logging.impl</package>
<package>org.apache.fop</package>
<package>org.apache.fop.apps</package>
<package>org.apache.fop.fo</package>
<package>org.apache.fop.fonts</package>
<package>org.apache.fop.fonts.apps</package>
<package>org.apache.fop.fonts.autodetect</package>
<package>org.apache.fop.fonts.base14</package>
<package>org.apache.fop.fonts.truetype</package>
<package>org.apache.fop.fonts.type1</package>
<package>org.apache.fop.image</package>
<package>org.apache.fop.image.analyser</package>
<package>org.apache.fop.pdf</package>
<package>org.apache.fop.render.pdf</package>
<package>org.apache.fop.render.ps</package>
<package>org.apache.fop.render.ps.extensions</package>
<package>org.apache.fop.svg</package>
<package>org.apache.fop.util</package>
<package>org.apache.xmlgraphics.fonts</package>
<package>org.apache.xmlgraphics.java2d</package>
<package>org.apache.xmlgraphics.java2d.ps</package>
<package>org.apache.xmlgraphics.ps</package>
<package>org.apache.xmlgraphics.ps.dsc</package>
<package>org.apache.xmlgraphics.ps.dsc.events</package>
<package>org.apache.xmlgraphics.ps.dsc.tools</package>
<package>org.apache.xmlgraphics.util.io</package>
<package>org.w3c.css.sac</package>
<package>org.w3c.css.sac.helpers</package>
<package>org.w3c.dom</package>
<package>org.w3c.dom.events</package>
<package>org.w3c.dom.smil</package>
<package>org.w3c.dom.svg</package>
</public-packages>
<class-path-extension>
<runtime-relative-path>ext/batik-transcoder.jar</runtime-relative-path>
<binary-origin>release/modules/ext/batik-transcoder.jar</binary-origin>
</class-path-extension>
<class-path-extension>
<runtime-relative-path>ext/batik-css.jar</runtime-relative-path>
<binary-origin>release/modules/ext/batik-css.jar</binary-origin>
</class-path-extension>
<class-path-extension>
<runtime-relative-path>ext/batik-util.jar</runtime-relative-path>
<binary-origin>release/modules/ext/batik-util.jar</binary-origin>
</class-path-extension>
<class-path-extension>
<runtime-relative-path>ext/xml-apis-ext.jar</runtime-relative-path>
<binary-origin>release/modules/ext/xml-apis-ext.jar</binary-origin>
</class-path-extension>
<class-path-extension>
<runtime-relative-path>ext/batik-dom.jar</runtime-relative-path>
<binary-origin>release/modules/ext/batik-dom.jar</binary-origin>
</class-path-extension>
<class-path-extension>
<runtime-relative-path>ext/batik-gvt.jar</runtime-relative-path>
<binary-origin>release/modules/ext/batik-gvt.jar</binary-origin>
</class-path-extension>
<class-path-extension>
<runtime-relative-path>ext/batik-script.jar</runtime-relative-path>
<binary-origin>release/modules/ext/batik-script.jar</binary-origin>
</class-path-extension>
<class-path-extension>
<runtime-relative-path>ext/batik-ext.jar</runtime-relative-path>
<binary-origin>release/modules/ext/batik-ext.jar</binary-origin>
</class-path-extension>
<class-path-extension>
<runtime-relative-path>ext/batik-parser.jar</runtime-relative-path>
<binary-origin>release/modules/ext/batik-parser.jar</binary-origin>
</class-path-extension>
<class-path-extension>
<runtime-relative-path>ext/batik-awt-util.jar</runtime-relative-path>
<binary-origin>release/modules/ext/batik-awt-util.jar</binary-origin>
</class-path-extension>
<class-path-extension>
<runtime-relative-path>ext/batik-svg-dom.jar</runtime-relative-path>
<binary-origin>release/modules/ext/batik-svg-dom.jar</binary-origin>
</class-path-extension>
<class-path-extension>
<runtime-relative-path>ext/batik-xml.jar</runtime-relative-path>
<binary-origin>release/modules/ext/batik-xml.jar</binary-origin>
</class-path-extension>
<class-path-extension>
<runtime-relative-path>ext/batik-anim.jar</runtime-relative-path>
<binary-origin>release/modules/ext/batik-anim.jar</binary-origin>
</class-path-extension>
<class-path-extension>
<runtime-relative-path>ext/batik-bridge.jar</runtime-relative-path>
<binary-origin>release/modules/ext/batik-bridge.jar</binary-origin>
</class-path-extension>
<class-path-extension>
<runtime-relative-path>ext/pdf-transcoder.jar</runtime-relative-path>
<binary-origin>release/modules/ext/pdf-transcoder.jar</binary-origin>
</class-path-extension>
</data>
</configuration>
</project>
-1
Ver Arquivo
@@ -1 +0,0 @@
suite.dir=${basedir}/..
Arquivo binário não exibido.
Arquivo binário não exibido.
Arquivo binário não exibido.
Arquivo binário não exibido.
Arquivo binário não exibido.
Arquivo binário não exibido.
Arquivo binário não exibido.

Alguns arquivos não foram exibidos porque demasiados arquivos foram alterados neste diff Mostrar Mais