From f06fafbe15e28d31665041f3c14f3f46506cf0d9 Mon Sep 17 00:00:00 2001
From: Francesco Mangiacrapa
Date: Mon, 4 Mar 2013 13:38:25 +0000
Subject: [PATCH] initial import
git-svn-id: http://svn.research-infrastructures.eu/public/d4science/gcube/trunk/portlets/user/speciesdiscovery@70758 82a268e6-3cf1-43bd-a215-b396298e98cf
---
.classpath | 35 +
.project | 59 +
.settings/.jsdtscope | 15 +
.../com.google.appengine.eclipse.core.prefs | 3 +
.settings/com.google.gdt.eclipse.core.prefs | 5 +
.settings/com.google.gwt.eclipse.core.prefs | 5 +
.settings/org.eclipse.core.resources.prefs | 6 +
.settings/org.eclipse.jdt.core.prefs | 8 +
.settings/org.eclipse.m2e.core.prefs | 4 +
.settings/org.eclipse.wst.common.component | 15 +
....eclipse.wst.common.project.facet.core.xml | 7 +
...rg.eclipse.wst.jsdt.ui.superType.container | 1 +
.settings/org.maven.ide.eclipse.prefs | 9 +
SpeciesDiscoveryTest-dev.launch | 22 +
SpeciesDiscoveryTest-prod.launch | 22 +
distro/INSTALL | 2 +
distro/LICENSE | 7 +
distro/MAINTAINERS | 5 +
distro/README | 51 +
distro/changelog.xml | 20 +
distro/descriptor.xml | 48 +
distro/profile.xml | 25 +
distro/svnpath.txt | 1 +
pom.xml | 381 +
src/main/java/META-INF/persistence.xml | 21 +
.../client/ConstantsSpeciesDiscovery.java | 115 +
.../client/OccurrencesWindow.java | 120 +
.../client/SearchBorderLayoutPanel.java | 161 +
.../client/SearchController.java | 1450 ++++
.../client/SpeciesDiscovery.java | 95 +
.../SpeciesResultFilterAccordionPanel.java | 41 +
.../client/SpeciesResultsPanelCardLayout.java | 147 +
.../client/SpeciesSearchFormPanel.java | 503 ++
.../AdvancedSearchInterface.java | 21 +
.../AdvancedSearchPanelEnum.java | 24 +
.../AdvancedSearchPanelInterface.java | 18 +
.../AdvancedSearchPanelManager.java | 225 +
.../client/advancedsearch/BoundsFilter.java | 215 +
.../advancedsearch/ClassificationFilter.java | 99 +
.../advancedsearch/ColumnContainer.java | 41 +
.../advancedsearch/DataSourceFilter.java | 349 +
.../client/advancedsearch/DateFilter.java | 207 +
.../client/advancedsearch/RegionFilter.java | 57 +
.../client/cluster/TabItemForTaxonomyRow.java | 886 ++
.../client/cluster/TablesForResultRow.java | 159 +
.../client/cluster/TablesForTaxonomyRow.java | 178 +
.../client/detail/SpeciesDetail.java | 36 +
.../client/detail/SpeciesDetailsPanel.java | 122 +
.../event/ActiveButtonCheckAllRowEvent.java | 35 +
.../ActiveButtonCheckAllRowEventHandler.java | 16 +
.../event/ActiveFilterOnResultEvent.java | 37 +
.../ActiveFilterOnResultEventHandler.java | 15 +
.../client/event/ActiveMaskLoadingGrid.java | 38 +
.../event/ActiveMaskLoadingGridHandler.java | 17 +
.../client/event/CapabilitySelectedEvent.java | 42 +
.../event/CapabilitySelectedEventHandler.java | 15 +
...angeFilterClassificationOnResultEvent.java | 26 +
...terClassificationOnResultEventHandler.java | 15 +
.../event/CompletedLoadDataSourceEvent.java | 29 +
.../CompletedLoadDataSourceEventHandler.java | 17 +
.../event/CreateOccurrenceJobEvent.java | 104 +
.../CreateOccurrenceJobEventHandler.java | 17 +
.../client/event/CreateTaxonomyJobEvent.java | 73 +
.../event/CreateTaxonomyJobEventHandler.java | 17 +
.../client/event/DisableFilterEvent.java | 28 +
.../event/DisableFilterEventHandler.java | 15 +
.../client/event/LoadDataSourceEvent.java | 29 +
.../event/LoadDataSourceEventHandler.java | 15 +
.../client/event/ReLoadListJobEvent.java | 40 +
.../event/ReLoadListJobEventHandler.java | 16 +
.../client/event/ReSubmitJobEvent.java | 56 +
.../client/event/ReSubmitJobEventHandler.java | 15 +
.../client/event/SaveItemsEvent.java | 91 +
.../client/event/SaveItemsEventHandler.java | 17 +
.../client/event/SaveJobEvent.java | 122 +
.../client/event/SaveJobEventHandler.java | 17 +
.../client/event/SearchCompleteEvent.java | 26 +
.../event/SearchCompleteEventHandler.java | 16 +
.../client/event/SearchEvent.java | 165 +
.../client/event/SearchEventHandler.java | 16 +
.../client/event/SearchStartedEvent.java | 26 +
.../event/SearchStartedEventHandler.java | 16 +
.../client/event/SelectAllEvent.java | 53 +
.../client/event/SelectAllEventHandler.java | 16 +
.../client/event/SetCommonNamesEvent.java | 37 +
.../event/SetCommonNamesEventHandler.java | 16 +
.../client/event/ShowOccurrencesEvent.java | 36 +
.../event/ShowOccurrencesEventHandler.java | 16 +
.../client/event/ShowOccurrencesMapEvent.java | 45 +
.../event/ShowOccurrencesMapEventHandler.java | 16 +
.../event/ShowOnlySelectedRowEvent.java | 53 +
.../ShowOnlySelectedRowEventHandler.java | 16 +
.../event/UpdateAllRowSelectionEvent.java | 46 +
.../UpdateAllRowSelectionEventHandler.java | 16 +
.../event/UpdateFilterOnResultEvent.java | 39 +
.../UpdateFilterOnResultEventHandler.java | 15 +
.../client/event/UpdateRowSelectionEvent.java | 44 +
.../event/UpdateRowSelectionEventHandler.java | 15 +
.../event/ViewDetailsOfSelectedEvent.java | 30 +
.../ViewDetailsOfSelectedEventHandler.java | 15 +
.../ExternalSystemInterface.java | 12 +
.../OtherInformationSystemsEnum.java | 47 +
.../OtherMappingSystemsEnum.java | 42 +
.../filterresult/ClassificationFilter.java | 403 +
.../filterresult/DataProviderFilter.java | 181 +
.../client/filterresult/DataSourceFilter.java | 188 +
.../client/filterresult/RankFilter.java | 181 +
.../filterresult/ResultFilterPanelEnum.java | 28 +
.../ResultFilterPanelInterface.java | 20 +
.../ResultFilterPanelManager.java | 322 +
.../client/filterresult/TypeFilter.java | 43 +
.../gridview/OccurrenceJobGridManager.java | 120 +
.../gridview/ResultRowResultsPanel.java | 569 ++
.../gridview/TaxonomyRowResultsPanel.java | 419 +
.../client/job/SpeciesJobPanel.java | 164 +
.../job/occurrence/OccurrenceGridJob.java | 589 ++
.../occurrence/OccurrenceJobInfoFields.java | 32 +
.../occurrence/OccurrenceJobSpeciesPanel.java | 352 +
.../OccurrenceJobSpeciesProgressBar.java | 74 +
.../job/occurrence/OccurrenceJobTable.java | 108 +
.../OccurrenceJobsInfoContainer.java | 51 +
.../OccurrenceWindowInfoJobsSpecies.java | 60 +
.../client/job/taxonomy/TaxonomyGridJob.java | 587 ++
.../job/taxonomy/TaxonomyJobInfoFields.java | 32 +
.../job/taxonomy/TaxonomyJobSpeciesPanel.java | 328 +
.../TaxonomyJobSpeciesProgressBar.java | 68 +
.../client/job/taxonomy/TaxonomyJobTable.java | 108 +
.../taxonomy/TaxonomyJobsInfoContainer.java | 104 +
.../TaxonomyWindowInfoJobsSpecies.java | 57 +
.../client/model/ClassificationModel.java | 115 +
.../client/model/QueryModel.java | 18 +
.../client/resources/Resources.java | 164 +
.../client/resources/Toggle.js | 37 +
.../client/resources/arrow-down.png | Bin 0 -> 438 bytes
.../client/resources/arrow-down2.png | Bin 0 -> 482 bytes
.../client/resources/arrow-right.png | Bin 0 -> 395 bytes
.../client/resources/arrow-right2.png | Bin 0 -> 485 bytes
.../client/resources/arrow-turn.png | Bin 0 -> 690 bytes
.../client/resources/attention.png | Bin 0 -> 500 bytes
.../client/resources/blueplace.png | Bin 0 -> 633 bytes
.../client/resources/checkbox-empty.png | Bin 0 -> 3117 bytes
.../client/resources/checkbox-full.png | Bin 0 -> 3962 bytes
.../client/resources/checkno.png | Bin 0 -> 3085 bytes
.../client/resources/checkyes.png | Bin 0 -> 426 bytes
.../client/resources/collapse.png | Bin 0 -> 330 bytes
.../client/resources/credits.png | Bin 0 -> 893 bytes
.../client/resources/datailsWindow.png | Bin 0 -> 632 bytes
.../client/resources/delete.png | Bin 0 -> 794 bytes
.../client/resources/detailsview.png | Bin 0 -> 1020 bytes
.../client/resources/detailsview2.png | Bin 0 -> 344 bytes
.../client/resources/expand.png | Bin 0 -> 346 bytes
.../client/resources/gbif.gif | Bin 0 -> 248 bytes
.../client/resources/gear.png | Bin 0 -> 736 bytes
.../client/resources/getSynonyms.png | Bin 0 -> 516 bytes
.../client/resources/gis_products.png | Bin 0 -> 804 bytes
.../client/resources/gridview.png | Bin 0 -> 1139 bytes
.../client/resources/gridview2.png | Bin 0 -> 246 bytes
.../client/resources/help.jpeg | Bin 0 -> 423 bytes
.../client/resources/help.png | Bin 0 -> 3609 bytes
.../client/resources/image-notfound.png | Bin 0 -> 1585 bytes
.../client/resources/imagesGrid.png | Bin 0 -> 209 bytes
.../client/resources/info-icon.png | Bin 0 -> 697 bytes
.../client/resources/loading-balls.gif | Bin 0 -> 2118 bytes
.../client/resources/nopicavailable.png | Bin 0 -> 4800 bytes
.../client/resources/occurrence/blueplace.png | Bin 0 -> 3263 bytes
.../resources/occurrence/blueplace1.png | Bin 0 -> 3301 bytes
.../resources/occurrence/blueplace16px.png | Bin 0 -> 3405 bytes
.../resources/occurrence/blueplace2.png | Bin 0 -> 3328 bytes
.../resources/occurrence/blueplace3.png | Bin 0 -> 3347 bytes
.../resources/occurrence/blueplace4+.png | Bin 0 -> 3375 bytes
.../resources/occurrence/blueplace4.png | Bin 0 -> 3315 bytes
.../resources/order_alphabetical_asc.gif | Bin 0 -> 153 bytes
.../client/resources/refresh.gif | Bin 0 -> 90 bytes
.../client/resources/reload-icon.png | Bin 0 -> 689 bytes
.../client/resources/save_products.png | Bin 0 -> 462 bytes
.../client/resources/save_products24.png | Bin 0 -> 702 bytes
.../client/resources/save_products_old.png | Bin 0 -> 620 bytes
.../client/resources/search-icon.png | Bin 0 -> 627 bytes
.../client/resources/select-icon.png | Bin 0 -> 1693 bytes
.../client/resources/select-icon2.png | Bin 0 -> 542 bytes
.../client/resources/select-icon3.png | Bin 0 -> 1304 bytes
.../client/resources/show_products.png | Bin 0 -> 566 bytes
.../client/resources/sortascending.gif | Bin 0 -> 159 bytes
.../client/resources/sortascending.png | Bin 0 -> 3419 bytes
.../client/resources/sorter.jpg | Bin 0 -> 441 bytes
.../client/resources/taxonomy/category.png | Bin 0 -> 3420 bytes
.../client/resources/taxonomy/taxonomy.png | Bin 0 -> 3664 bytes
.../client/resources/taxonomy/taxonomy1.png | Bin 0 -> 3568 bytes
.../resources/taxonomy/taxonomy16px.png | Bin 0 -> 1293 bytes
.../client/resources/taxonomy/taxonomy2.png | Bin 0 -> 3634 bytes
.../client/resources/taxonomy/taxonomy3.png | Bin 0 -> 3648 bytes
.../client/resources/taxonomy/taxonomy4.png | Bin 0 -> 3606 bytes
.../resources/taxonomy/taxonomy4More.png | Bin 0 -> 3656 bytes
.../resultview/DescriptiveSpeciesGrid.java | 95 +
.../resultview/DescriptiveTaxonomyGrid.java | 97 +
.../client/resultview/SpeciesGrid.java | 220 +
.../client/resultview/TaxonomyGrid.java | 186 +
.../client/rpc/TaxonomySearchService.java | 158 +
.../rpc/TaxonomySearchServiceAsync.java | 140 +
.../client/util/ExtendedTimer.java | 42 +
.../client/util/GridField.java | 16 +
.../client/util/JavascriptInjector.java | 39 +
.../client/util/OccurencesGridFields.java | 78 +
.../client/util/SpeciesDetailsFields.java | 52 +
.../client/util/SpeciesFilterFields.java | 56 +
.../client/util/SpeciesGridFields.java | 82 +
.../client/util/TaxonomyGridField.java | 82 +
.../speciesdiscovery/client/util/Util.java | 52 +
.../client/util/stream/DataSource.java | 25 +
.../client/util/stream/DataSourceManager.java | 108 +
.../client/util/stream/EditListener.java | 16 +
.../util/stream/OccurrencesDataSource.java | 141 +
.../util/stream/ResultRowDataSource.java | 418 +
.../util/stream/StreamPagingLoader.java | 666 ++
.../stream/StreamPagingLoaderListener.java | 16 +
.../util/stream/StreamPagingToolBar.java | 246 +
.../client/util/stream/StreamState.java | 59 +
.../util/stream/TaxonomyRowDataSource.java | 342 +
.../client/view/ExtendedLiveGridView.java | 20 +
.../client/view/SpeciesThumbsView.java | 161 +
.../client/view/SpeciesViewInterface.java | 19 +
.../client/window/HelpQueryWindow.java | 87 +
.../client/window/MessageBoxConfirm.java | 26 +
.../client/window/MessageDialog.java | 23 +
.../client/window/ViewDetailsWindow.java | 1344 +++
.../client/window/WindowCredits.java | 262 +
.../client/window/WindowOpenUrl.java | 15 +
.../server/TaxonomySearchServiceImpl.java | 2018 +++++
.../server/asl/SessionUtil.java | 175 +
.../server/job/KeyStringList.java | 21 +
.../server/job/OccurrenceJobUtil.java | 436 +
.../server/job/OccurrenceKeys.java | 34 +
.../server/job/TaxonomyJobUtil.java | 200 +
.../server/persistence/AbstractDaoBuffer.java | 76 +
.../AbstractSelectableDaoBuffer.java | 75 +
.../server/persistence/DaoSession.java | 286 +
.../server/persistence/OccurrenceBuffer.java | 27 +
.../server/persistence/ResultRowBuffer.java | 241 +
.../server/persistence/TaxonomyRowBuffer.java | 213 +
.../persistence/dao/AbstractPersistence.java | 202 +
.../dao/OccurrenceJobPersistence.java | 207 +
.../dao/OccurrenceRowPersistence.java | 219 +
.../persistence/dao/ResultRowPersistence.java | 217 +
.../persistence/dao/TaxonRowPersistence.java | 201 +
.../dao/TaxonomyJobPersistence.java | 209 +
.../dao/TaxonomyRowPersistence.java | 210 +
.../server/service/IteratorChainBuilder.java | 77 +
.../server/service/OccurrenceConverter.java | 132 +
.../server/service/QueryBuilder.java | 131 +
.../server/service/ResultItemConverter.java | 191 +
.../server/service/SpeciesService.java | 566 ++
.../server/service/StreamIterator.java | 56 +
.../server/service/TaxonomyItemConverter.java | 195 +
.../server/session/Fetcher.java | 110 +
.../server/session/FetchingBuffer.java | 20 +
.../server/session/FetchingSession.java | 88 +
.../server/session/FetchingSessionUtil.java | 77 +
.../session/FilterableFetchingBuffer.java | 24 +
.../session/SelectableFetchingBuffer.java | 24 +
.../server/stream/Aggregator.java | 18 +
.../server/stream/AggregatorIterator.java | 60 +
.../server/stream/CSVGenerator.java | 77 +
.../server/stream/CastConverter.java | 18 +
.../server/stream/CloseableIterator.java | 15 +
.../server/stream/ConversionIterator.java | 67 +
.../server/stream/Converter.java | 14 +
.../server/stream/CounterAggregator.java | 49 +
.../server/stream/IteratorPointInfo.java | 133 +
.../server/stream/IteratorWrapper.java | 53 +
.../server/stream/KeyProvider.java | 14 +
.../server/stream/OccurenceCSVConverter.java | 87 +
.../OccurenceCSVConverterOpenModeller.java | 47 +
.../server/stream/StreamExtend.java | 50 +
.../stream/aggregation/FieldAggregator.java | 26 +
.../stream/aggregation/FieldKeyProvider.java | 38 +
.../aggregation/SpeciesKeyProvider.java | 31 +
.../TaxonomyClassificationAggregator.java | 219 +
.../aggregation/TaxonomyKeyProvider.java | 30 +
.../server/util/DateUtil.java | 167 +
.../server/util/QueryUtil.java | 71 +
.../server/util/StorageUtil.java | 82 +
.../server/util/XStreamUtil.java | 56 +
.../speciesdiscovery/shared/CommonName.java | 101 +
.../speciesdiscovery/shared/Coordinate.java | 74 +
.../speciesdiscovery/shared/DataSource.java | 89 +
.../shared/DataSourceCapability.java | 77 +
.../shared/DataSourceModel.java | 73 +
.../shared/DataSourceRepositoryInfo.java | 76 +
.../shared/DownloadState.java | 15 +
.../shared/FetchingElement.java | 14 +
.../shared/FieldVerifier.java | 42 +
.../shared/ItemParameter.java | 78 +
.../shared/JobOccurrencesModel.java | 301 +
.../shared/JobTaxonomyModel.java | 208 +
.../shared/MainTaxonomicRankEnum.java | 53 +
.../speciesdiscovery/shared/Occurrence.java | 503 ++
.../shared/OccurrenceBatch.java | 67 +
.../shared/OccurrencesJob.java | 251 +
.../shared/OccurrencesSaveEnum.java | 42 +
.../shared/OccurrencesStatus.java | 71 +
.../speciesdiscovery/shared/ResultRow.java | 642 ++
.../shared/SaveFileFormat.java | 18 +
.../shared/SearchFilters.java | 147 +
.../speciesdiscovery/shared/SearchResult.java | 48 +
.../shared/SearchResultType.java | 36 +
.../shared/SearchServiceException.java | 22 +
.../speciesdiscovery/shared/SearchStatus.java | 84 +
.../speciesdiscovery/shared/SearchType.java | 28 +
.../shared/SelectableElement.java | 16 +
.../shared/SpeciesCapability.java | 47 +
.../user/speciesdiscovery/shared/Taxon.java | 125 +
.../shared/TaxonChildren.java | 72 +
.../shared/TaxonomyInterface.java | 31 +
.../speciesdiscovery/shared/TaxonomyJob.java | 189 +
.../shared/TaxonomyProvider.java | 25 +
.../speciesdiscovery/shared/TaxonomyRow.java | 494 ++
.../cluster/ClusterCommonNameDataSource.java | 113 +
.../ClusterStructuresForResultRow.java | 148 +
.../ClusterStructuresForTaxonomyRow.java | 185 +
.../shared/filter/FilterCriteria.java | 12 +
.../shared/filter/ResultFilter.java | 187 +
.../shared/util/NormalizeString.java | 50 +
.../speciesdiscovery/SpeciesDiscovery.gwt.xml | 21 +
src/main/webapp/SpeciesDiscovery.css | 345 +
src/main/webapp/SpeciesDiscovery.html | 46 +
src/main/webapp/WEB-INF/web.xml | 71 +
.../webapp/gxt/chart/open-flash-chart.swf | Bin 0 -> 280287 bytes
src/main/webapp/gxt/css/gxt-all.css | 7454 +++++++++++++++++
src/main/webapp/gxt/css/gxt-gray.css | 493 ++
src/main/webapp/gxt/desktop/css/desktop.css | 638 ++
src/main/webapp/gxt/desktop/images/add.gif | Bin 0 -> 994 bytes
src/main/webapp/gxt/desktop/images/delete.gif | Bin 0 -> 989 bytes
.../webapp/gxt/desktop/images/desktop.gif | Bin 0 -> 63601 bytes
.../webapp/gxt/desktop/images/desktop3.jpg | Bin 0 -> 158508 bytes
src/main/webapp/gxt/desktop/images/gears.gif | Bin 0 -> 996 bytes
src/main/webapp/gxt/desktop/images/gears.png | Bin 0 -> 967 bytes
src/main/webapp/gxt/desktop/images/grid.png | Bin 0 -> 513 bytes
src/main/webapp/gxt/desktop/images/hatch.gif | Bin 0 -> 842 bytes
src/main/webapp/gxt/desktop/images/hd-bg.gif | Bin 0 -> 992 bytes
.../webapp/gxt/desktop/images/hd-tb-bg.gif | Bin 0 -> 808 bytes
.../gxt/desktop/images/icon_padlock.png | Bin 0 -> 400 bytes
.../webapp/gxt/desktop/images/icons-bg.png | Bin 0 -> 191 bytes
.../webapp/gxt/desktop/images/launcher-bg.gif | Bin 0 -> 944 bytes
.../gxt/desktop/images/launcher-btn.gif | Bin 0 -> 1247 bytes
src/main/webapp/gxt/desktop/images/logout.gif | Bin 0 -> 920 bytes
src/main/webapp/gxt/desktop/images/logout.png | Bin 0 -> 505 bytes
src/main/webapp/gxt/desktop/images/member.gif | Bin 0 -> 972 bytes
src/main/webapp/gxt/desktop/images/member.png | Bin 0 -> 832 bytes
src/main/webapp/gxt/desktop/images/plugin.gif | Bin 0 -> 988 bytes
.../webapp/gxt/desktop/images/powered.gif | Bin 0 -> 2291 bytes
.../webapp/gxt/desktop/images/powered.png | Bin 0 -> 3606 bytes
src/main/webapp/gxt/desktop/images/s.gif | Bin 0 -> 43 bytes
src/main/webapp/gxt/desktop/images/tabs.gif | Bin 0 -> 917 bytes
.../images/taskbar/black/item-over.gif | Bin 0 -> 166 bytes
.../images/taskbar/black/scroll-left.gif | Bin 0 -> 1405 bytes
.../images/taskbar/black/scroll-right.gif | Bin 0 -> 1405 bytes
.../taskbar/black/start-menu-left-corners.png | Bin 0 -> 206 bytes
.../taskbar/black/start-menu-left-right.png | Bin 0 -> 143 bytes
.../black/start-menu-right-corners.png | Bin 0 -> 224 bytes
.../images/taskbar/black/start-menu-right.png | Bin 0 -> 141 bytes
.../taskbar/black/start-menu-top-bottom.png | Bin 0 -> 158 bytes
.../images/taskbar/black/startbutton-icon.gif | Bin 0 -> 748 bytes
.../images/taskbar/black/startbutton.gif | Bin 0 -> 2419 bytes
.../images/taskbar/black/taskbar-split-h.gif | Bin 0 -> 327 bytes
.../taskbar/black/taskbar-start-panel-bg.gif | Bin 0 -> 890 bytes
.../images/taskbar/black/taskbutton.gif | Bin 0 -> 1894 bytes
.../taskbar/black/taskbuttons-panel-bg.gif | Bin 0 -> 195 bytes
.../webapp/gxt/desktop/images/winbar-bg.gif | Bin 0 -> 888 bytes
.../webapp/gxt/desktop/images/winbar-btn.gif | Bin 0 -> 1316 bytes
.../webapp/gxt/desktop/images/windows-bg.gif | Bin 0 -> 830 bytes
.../webapp/gxt/desktop/wallpapers/desktop.jpg | Bin 0 -> 84237 bytes
src/main/webapp/gxt/flash/swfobject.js | 5 +
.../gxt/images/default/box/corners-blue.gif | Bin 0 -> 1010 bytes
.../webapp/gxt/images/default/box/corners.gif | Bin 0 -> 1005 bytes
.../webapp/gxt/images/default/box/l-blue.gif | Bin 0 -> 810 bytes
src/main/webapp/gxt/images/default/box/l.gif | Bin 0 -> 810 bytes
.../webapp/gxt/images/default/box/r-blue.gif | Bin 0 -> 810 bytes
src/main/webapp/gxt/images/default/box/r.gif | Bin 0 -> 810 bytes
.../webapp/gxt/images/default/box/tb-blue.gif | Bin 0 -> 851 bytes
src/main/webapp/gxt/images/default/box/tb.gif | Bin 0 -> 839 bytes
.../gxt/images/default/button/arrow.gif | Bin 0 -> 828 bytes
.../gxt/images/default/button/btn-arrow.gif | Bin 0 -> 870 bytes
.../gxt/images/default/button/btn-sprite.gif | Bin 0 -> 1341 bytes
.../webapp/gxt/images/default/button/btn.gif | Bin 0 -> 4298 bytes
.../gxt/images/default/button/group-cs.gif | Bin 0 -> 2459 bytes
.../gxt/images/default/button/group-lr.gif | Bin 0 -> 861 bytes
.../gxt/images/default/button/group-tb.gif | Bin 0 -> 846 bytes
.../default/button/s-arrow-b-noline.gif | Bin 0 -> 898 bytes
.../gxt/images/default/button/s-arrow-b.gif | Bin 0 -> 937 bytes
.../gxt/images/default/button/s-arrow-bo.gif | Bin 0 -> 955 bytes
.../images/default/button/s-arrow-noline.gif | Bin 0 -> 863 bytes
.../gxt/images/default/button/s-arrow-o.gif | Bin 0 -> 937 bytes
.../gxt/images/default/button/s-arrow.gif | Bin 0 -> 937 bytes
.../webapp/gxt/images/default/dd/drop-add.gif | Bin 0 -> 1001 bytes
.../webapp/gxt/images/default/dd/drop-no.gif | Bin 0 -> 949 bytes
.../webapp/gxt/images/default/dd/drop-yes.gif | Bin 0 -> 1016 bytes
.../gxt/images/default/editor/tb-bold.gif | Bin 0 -> 892 bytes
.../images/default/editor/tb-font-color.gif | Bin 0 -> 905 bytes
.../default/editor/tb-font-decrease.gif | Bin 0 -> 879 bytes
.../default/editor/tb-font-highlight.gif | Bin 0 -> 941 bytes
.../default/editor/tb-font-increase.gif | Bin 0 -> 906 bytes
.../gxt/images/default/editor/tb-italic.gif | Bin 0 -> 862 bytes
.../default/editor/tb-justify-center.gif | Bin 0 -> 848 bytes
.../images/default/editor/tb-justify-left.gif | Bin 0 -> 848 bytes
.../default/editor/tb-justify-right.gif | Bin 0 -> 848 bytes
.../gxt/images/default/editor/tb-link.gif | Bin 0 -> 1060 bytes
.../gxt/images/default/editor/tb-ol.gif | Bin 0 -> 877 bytes
.../gxt/images/default/editor/tb-source.gif | Bin 0 -> 952 bytes
.../gxt/images/default/editor/tb-sprite.gif | Bin 0 -> 2072 bytes
.../gxt/images/default/editor/tb-ul.gif | Bin 0 -> 871 bytes
.../images/default/editor/tb-underline.gif | Bin 0 -> 884 bytes
.../gxt/images/default/form/checkbox.gif | Bin 0 -> 2061 bytes
.../gxt/images/default/form/clear-trigger.gif | Bin 0 -> 1988 bytes
.../gxt/images/default/form/date-trigger.gif | Bin 0 -> 1603 bytes
.../images/default/form/error-tip-corners.gif | Bin 0 -> 4183 bytes
.../gxt/images/default/form/exclamation.gif | Bin 0 -> 996 bytes
.../webapp/gxt/images/default/form/radio.gif | Bin 0 -> 1746 bytes
.../images/default/form/search-trigger.gif | Bin 0 -> 2182 bytes
.../gxt/images/default/form/spinner.gif | Bin 0 -> 3186 bytes
.../gxt/images/default/form/text-bg.gif | Bin 0 -> 819 bytes
.../gxt/images/default/form/trigger-tpl.gif | Bin 0 -> 1487 bytes
.../gxt/images/default/form/trigger.gif | Bin 0 -> 1688 bytes
.../webapp/gxt/images/default/gradient-bg.gif | Bin 0 -> 1472 bytes
.../images/default/grid/arrow-left-white.gif | Bin 0 -> 825 bytes
.../images/default/grid/arrow-right-white.gif | Bin 0 -> 825 bytes
.../images/default/grid/col-move-bottom.gif | Bin 0 -> 868 bytes
.../gxt/images/default/grid/col-move-top.gif | Bin 0 -> 869 bytes
.../gxt/images/default/grid/columns.gif | Bin 0 -> 962 bytes
.../webapp/gxt/images/default/grid/dirty.gif | Bin 0 -> 832 bytes
.../webapp/gxt/images/default/grid/done.gif | Bin 0 -> 133 bytes
.../gxt/images/default/grid/drop-no.gif | Bin 0 -> 947 bytes
.../gxt/images/default/grid/drop-yes.gif | Bin 0 -> 860 bytes
.../gxt/images/default/grid/footer-bg.gif | Bin 0 -> 834 bytes
.../gxt/images/default/grid/grid-blue-hd.gif | Bin 0 -> 829 bytes
.../images/default/grid/grid-blue-split.gif | Bin 0 -> 817 bytes
.../gxt/images/default/grid/grid-hrow.gif | Bin 0 -> 855 bytes
.../gxt/images/default/grid/grid-loading.gif | Bin 0 -> 701 bytes
.../gxt/images/default/grid/grid-split.gif | Bin 0 -> 817 bytes
.../gxt/images/default/grid/grid-vista-hd.gif | Bin 0 -> 829 bytes
.../gxt/images/default/grid/grid3-hd-btn.gif | Bin 0 -> 1298 bytes
.../images/default/grid/grid3-hrow-group.gif | Bin 0 -> 811 bytes
.../images/default/grid/grid3-hrow-over.gif | Bin 0 -> 823 bytes
.../gxt/images/default/grid/grid3-hrow.gif | Bin 0 -> 836 bytes
.../default/grid/grid3-special-col-bg.gif | Bin 0 -> 837 bytes
.../default/grid/grid3-special-col-sel-bg.gif | Bin 0 -> 843 bytes
.../gxt/images/default/grid/group-by.gif | Bin 0 -> 917 bytes
.../default/grid/group-expand-sprite.gif | Bin 0 -> 955 bytes
.../webapp/gxt/images/default/grid/hd-pop.gif | Bin 0 -> 839 bytes
.../gxt/images/default/grid/hmenu-asc.gif | Bin 0 -> 931 bytes
.../gxt/images/default/grid/hmenu-desc.gif | Bin 0 -> 930 bytes
.../gxt/images/default/grid/hmenu-lock.gif | Bin 0 -> 955 bytes
.../gxt/images/default/grid/hmenu-lock.png | Bin 0 -> 648 bytes
.../gxt/images/default/grid/hmenu-unlock.gif | Bin 0 -> 971 bytes
.../gxt/images/default/grid/hmenu-unlock.png | Bin 0 -> 697 bytes
.../gxt/images/default/grid/invalid_line.gif | Bin 0 -> 815 bytes
.../gxt/images/default/grid/loading.gif | Bin 0 -> 771 bytes
.../webapp/gxt/images/default/grid/mso-hd.gif | Bin 0 -> 875 bytes
.../webapp/gxt/images/default/grid/nowait.gif | Bin 0 -> 884 bytes
.../default/grid/page-first-disabled.gif | Bin 0 -> 925 bytes
.../gxt/images/default/grid/page-first.gif | Bin 0 -> 925 bytes
.../default/grid/page-last-disabled.gif | Bin 0 -> 923 bytes
.../gxt/images/default/grid/page-last.gif | Bin 0 -> 923 bytes
.../default/grid/page-next-disabled.gif | Bin 0 -> 875 bytes
.../gxt/images/default/grid/page-next.gif | Bin 0 -> 875 bytes
.../default/grid/page-prev-disabled.gif | Bin 0 -> 879 bytes
.../gxt/images/default/grid/page-prev.gif | Bin 0 -> 879 bytes
.../gxt/images/default/grid/pick-button.gif | Bin 0 -> 1036 bytes
.../gxt/images/default/grid/refresh.gif | Bin 0 -> 977 bytes
.../gxt/images/default/grid/refresh.png | Bin 0 -> 791 bytes
.../images/default/grid/row-check-sprite.gif | Bin 0 -> 1083 bytes
.../images/default/grid/row-expand-sprite.gif | Bin 0 -> 955 bytes
.../gxt/images/default/grid/row-over.gif | Bin 0 -> 823 bytes
.../gxt/images/default/grid/row-sel.gif | Bin 0 -> 823 bytes
.../gxt/images/default/grid/sort-hd.gif | Bin 0 -> 1473 bytes
.../gxt/images/default/grid/sort_asc.gif | Bin 0 -> 830 bytes
.../gxt/images/default/grid/sort_desc.gif | Bin 0 -> 833 bytes
.../webapp/gxt/images/default/grid/wait.gif | Bin 0 -> 1100 bytes
.../gxt/images/default/layout/collapse.gif | Bin 0 -> 842 bytes
.../gxt/images/default/layout/expand.gif | Bin 0 -> 842 bytes
.../gxt/images/default/layout/gradient-bg.gif | Bin 0 -> 1472 bytes
.../gxt/images/default/layout/mini-bottom.gif | Bin 0 -> 856 bytes
.../gxt/images/default/layout/mini-left.gif | Bin 0 -> 871 bytes
.../gxt/images/default/layout/mini-right.gif | Bin 0 -> 872 bytes
.../gxt/images/default/layout/mini-top.gif | Bin 0 -> 856 bytes
.../gxt/images/default/layout/ns-collapse.gif | Bin 0 -> 842 bytes
.../gxt/images/default/layout/ns-expand.gif | Bin 0 -> 843 bytes
.../gxt/images/default/layout/panel-close.gif | Bin 0 -> 829 bytes
.../images/default/layout/panel-title-bg.gif | Bin 0 -> 838 bytes
.../default/layout/panel-title-light-bg.gif | Bin 0 -> 835 bytes
.../gxt/images/default/layout/stick.gif | Bin 0 -> 874 bytes
.../gxt/images/default/layout/stuck.gif | Bin 0 -> 92 bytes
.../images/default/layout/tab-close-on.gif | Bin 0 -> 880 bytes
.../gxt/images/default/layout/tab-close.gif | Bin 0 -> 859 bytes
.../gxt/images/default/menu/checked.gif | Bin 0 -> 959 bytes
.../gxt/images/default/menu/group-checked.gif | Bin 0 -> 891 bytes
.../gxt/images/default/menu/item-over.gif | Bin 0 -> 820 bytes
.../gxt/images/default/menu/menu-parent.gif | Bin 0 -> 854 bytes
.../webapp/gxt/images/default/menu/menu.gif | Bin 0 -> 834 bytes
.../gxt/images/default/menu/unchecked.gif | Bin 0 -> 941 bytes
.../images/default/panel/corners-sprite.gif | Bin 0 -> 1418 bytes
.../gxt/images/default/panel/left-right.gif | Bin 0 -> 815 bytes
.../gxt/images/default/panel/light-hd.gif | Bin 0 -> 827 bytes
.../images/default/panel/tool-sprite-tpl.gif | Bin 0 -> 971 bytes
.../gxt/images/default/panel/tool-sprites.gif | Bin 0 -> 4392 bytes
.../default/panel/tools-sprites-trans.gif | Bin 0 -> 2843 bytes
.../gxt/images/default/panel/top-bottom.gif | Bin 0 -> 875 bytes
.../gxt/images/default/panel/top-bottom.png | Bin 0 -> 218 bytes
.../default/panel/white-corners-sprite.gif | Bin 0 -> 1366 bytes
.../images/default/panel/white-left-right.gif | Bin 0 -> 815 bytes
.../images/default/panel/white-top-bottom.gif | Bin 0 -> 872 bytes
.../images/default/progress/progress-bg.gif | Bin 0 -> 834 bytes
.../webapp/gxt/images/default/qtip/bg.gif | Bin 0 -> 1091 bytes
.../webapp/gxt/images/default/qtip/close.gif | Bin 0 -> 972 bytes
.../images/default/qtip/tip-anchor-sprite.gif | Bin 0 -> 951 bytes
.../gxt/images/default/qtip/tip-sprite.gif | Bin 0 -> 4271 bytes
src/main/webapp/gxt/images/default/s.gif | Bin 0 -> 43 bytes
.../webapp/gxt/images/default/shadow-c.png | Bin 0 -> 118 bytes
.../webapp/gxt/images/default/shadow-lr.png | Bin 0 -> 135 bytes
src/main/webapp/gxt/images/default/shadow.png | Bin 0 -> 311 bytes
.../images/default/shared/blue-loading.gif | Bin 0 -> 3236 bytes
.../gxt/images/default/shared/calendar.gif | Bin 0 -> 979 bytes
.../gxt/images/default/shared/clear.gif | Bin 0 -> 43 bytes
.../gxt/images/default/shared/glass-bg.gif | Bin 0 -> 873 bytes
.../gxt/images/default/shared/hd-sprite.gif | Bin 0 -> 1099 bytes
.../images/default/shared/large-loading.gif | Bin 0 -> 3236 bytes
.../gxt/images/default/shared/left-btn.gif | Bin 0 -> 870 bytes
.../images/default/shared/loading-balls.gif | Bin 0 -> 2118 bytes
.../gxt/images/default/shared/right-btn.gif | Bin 0 -> 871 bytes
.../gxt/images/default/shared/warning.gif | Bin 0 -> 960 bytes
.../images/default/sizer/e-handle-dark.gif | Bin 0 -> 1062 bytes
.../gxt/images/default/sizer/e-handle.gif | Bin 0 -> 1586 bytes
.../images/default/sizer/ne-handle-dark.gif | Bin 0 -> 839 bytes
.../gxt/images/default/sizer/ne-handle.gif | Bin 0 -> 854 bytes
.../images/default/sizer/nw-handle-dark.gif | Bin 0 -> 839 bytes
.../gxt/images/default/sizer/nw-handle.gif | Bin 0 -> 853 bytes
.../images/default/sizer/s-handle-dark.gif | Bin 0 -> 1060 bytes
.../gxt/images/default/sizer/s-handle.gif | Bin 0 -> 1318 bytes
.../images/default/sizer/se-handle-dark.gif | Bin 0 -> 838 bytes
.../gxt/images/default/sizer/se-handle.gif | Bin 0 -> 853 bytes
.../gxt/images/default/sizer/square.gif | Bin 0 -> 864 bytes
.../images/default/sizer/sw-handle-dark.gif | Bin 0 -> 839 bytes
.../gxt/images/default/sizer/sw-handle.gif | Bin 0 -> 855 bytes
.../gxt/images/default/slider/slider-bg.png | Bin 0 -> 300 bytes
.../images/default/slider/slider-thumb.png | Bin 0 -> 933 bytes
.../gxt/images/default/slider/slider-v-bg.png | Bin 0 -> 288 bytes
.../images/default/slider/slider-v-thumb.png | Bin 0 -> 883 bytes
.../gxt/images/default/tabs/scroll-left.gif | Bin 0 -> 1295 bytes
.../gxt/images/default/tabs/scroll-right.gif | Bin 0 -> 1300 bytes
.../gxt/images/default/tabs/scroller-bg.gif | Bin 0 -> 1100 bytes
.../default/tabs/tab-btm-inactive-left-bg.gif | Bin 0 -> 886 bytes
.../tabs/tab-btm-inactive-right-bg.gif | Bin 0 -> 1386 bytes
.../images/default/tabs/tab-btm-left-bg.gif | Bin 0 -> 863 bytes
.../images/default/tabs/tab-btm-right-bg.gif | Bin 0 -> 1402 bytes
.../gxt/images/default/tabs/tab-close.gif | Bin 0 -> 896 bytes
.../gxt/images/default/tabs/tab-strip-bg.gif | Bin 0 -> 835 bytes
.../gxt/images/default/tabs/tab-strip-bg.png | Bin 0 -> 259 bytes
.../images/default/tabs/tab-strip-btm-bg.gif | Bin 0 -> 826 bytes
.../gxt/images/default/tabs/tabs-sprite.gif | Bin 0 -> 2120 bytes
.../webapp/gxt/images/default/toolbar/bg.gif | Bin 0 -> 904 bytes
.../default/toolbar/btn-arrow-light.gif | Bin 0 -> 916 bytes
.../gxt/images/default/toolbar/btn-arrow.gif | Bin 0 -> 919 bytes
.../images/default/toolbar/btn-over-bg.gif | Bin 0 -> 837 bytes
.../gxt/images/default/toolbar/gray-bg.gif | Bin 0 -> 832 bytes
.../gxt/images/default/toolbar/more.gif | Bin 0 -> 845 bytes
.../gxt/images/default/toolbar/tb-bg.gif | Bin 0 -> 862 bytes
.../images/default/toolbar/tb-btn-sprite.gif | Bin 0 -> 1127 bytes
.../default/toolbar/tb-xl-btn-sprite.gif | Bin 0 -> 1663 bytes
.../gxt/images/default/toolbar/tb-xl-sep.gif | Bin 0 -> 810 bytes
.../webapp/gxt/images/default/tree/arrows.gif | Bin 0 -> 1024 bytes
.../gxt/images/default/tree/drop-add.gif | Bin 0 -> 1001 bytes
.../gxt/images/default/tree/drop-between.gif | Bin 0 -> 907 bytes
.../gxt/images/default/tree/drop-no.gif | Bin 0 -> 949 bytes
.../gxt/images/default/tree/drop-over.gif | Bin 0 -> 911 bytes
.../gxt/images/default/tree/drop-under.gif | Bin 0 -> 911 bytes
.../gxt/images/default/tree/drop-yes.gif | Bin 0 -> 1016 bytes
.../default/tree/elbow-end-minus-nl.gif | Bin 0 -> 898 bytes
.../images/default/tree/elbow-end-minus.gif | Bin 0 -> 905 bytes
.../images/default/tree/elbow-end-plus-nl.gif | Bin 0 -> 900 bytes
.../images/default/tree/elbow-end-plus.gif | Bin 0 -> 907 bytes
.../gxt/images/default/tree/elbow-end.gif | Bin 0 -> 844 bytes
.../gxt/images/default/tree/elbow-line.gif | Bin 0 -> 846 bytes
.../images/default/tree/elbow-minus-nl.gif | Bin 0 -> 898 bytes
.../gxt/images/default/tree/elbow-minus.gif | Bin 0 -> 908 bytes
.../gxt/images/default/tree/elbow-plus-nl.gif | Bin 0 -> 900 bytes
.../gxt/images/default/tree/elbow-plus.gif | Bin 0 -> 910 bytes
.../webapp/gxt/images/default/tree/elbow.gif | Bin 0 -> 850 bytes
.../gxt/images/default/tree/folder-open.gif | Bin 0 -> 956 bytes
.../webapp/gxt/images/default/tree/folder.gif | Bin 0 -> 952 bytes
.../webapp/gxt/images/default/tree/leaf.gif | Bin 0 -> 945 bytes
.../gxt/images/default/tree/loading.gif | Bin 0 -> 771 bytes
src/main/webapp/gxt/images/default/tree/s.gif | Bin 0 -> 43 bytes
.../gxt/images/default/window/icon-error.gif | Bin 0 -> 1669 bytes
.../gxt/images/default/window/icon-info.gif | Bin 0 -> 1586 bytes
.../images/default/window/icon-question.gif | Bin 0 -> 1607 bytes
.../images/default/window/icon-warning.gif | Bin 0 -> 1483 bytes
.../images/default/window/left-corners.png | Bin 0 -> 200 bytes
.../gxt/images/default/window/left-right.png | Bin 0 -> 152 bytes
.../images/default/window/right-corners.png | Bin 0 -> 256 bytes
.../gxt/images/default/window/top-bottom.png | Bin 0 -> 180 bytes
.../gxt/images/gray/button/btn-arrow.gif | Bin 0 -> 870 bytes
.../gxt/images/gray/button/btn-sprite.gif | Bin 0 -> 1222 bytes
.../webapp/gxt/images/gray/button/btn.gif | Bin 0 -> 3319 bytes
.../gxt/images/gray/button/group-cs.gif | Bin 0 -> 2459 bytes
.../gxt/images/gray/button/group-lr.gif | Bin 0 -> 861 bytes
.../gxt/images/gray/button/group-tb.gif | Bin 0 -> 846 bytes
.../webapp/gxt/images/gray/form/spinner.gif | Bin 0 -> 3046 bytes
.../webapp/gxt/images/gray/gradient-bg.gif | Bin 0 -> 1472 bytes
.../gxt/images/gray/grid/col-move-bottom.gif | Bin 0 -> 177 bytes
.../gxt/images/gray/grid/col-move-top.gif | Bin 0 -> 178 bytes
.../gxt/images/gray/grid/grid-split.gif | Bin 0 -> 809 bytes
.../gxt/images/gray/grid/grid3-hd-btn.gif | Bin 0 -> 482 bytes
.../gxt/images/gray/grid/grid3-hrow-over.gif | Bin 0 -> 56 bytes
.../gxt/images/gray/grid/grid3-hrow-over2.gif | Bin 0 -> 107 bytes
.../gxt/images/gray/grid/grid3-hrow.gif | Bin 0 -> 836 bytes
.../gxt/images/gray/grid/grid3-hrow2.gif | Bin 0 -> 107 bytes
.../images/gray/grid/grid3-special-col-bg.gif | Bin 0 -> 158 bytes
.../gray/grid/grid3-special-col-bg2.gif | Bin 0 -> 158 bytes
.../gray/grid/grid3-special-col-sel-bg.gif | Bin 0 -> 158 bytes
.../gxt/images/gray/grid/group-collapse.gif | Bin 0 -> 136 bytes
.../images/gray/grid/group-expand-sprite.gif | Bin 0 -> 196 bytes
.../gxt/images/gray/grid/group-expand.gif | Bin 0 -> 138 bytes
.../gxt/images/gray/grid/page-first.gif | Bin 0 -> 327 bytes
.../webapp/gxt/images/gray/grid/page-last.gif | Bin 0 -> 325 bytes
.../webapp/gxt/images/gray/grid/page-next.gif | Bin 0 -> 183 bytes
.../webapp/gxt/images/gray/grid/page-prev.gif | Bin 0 -> 186 bytes
.../webapp/gxt/images/gray/grid/refresh.gif | Bin 0 -> 570 bytes
.../images/gray/grid/row-expand-sprite.gif | Bin 0 -> 196 bytes
.../webapp/gxt/images/gray/grid/sort_asc.gif | Bin 0 -> 59 bytes
.../webapp/gxt/images/gray/grid/sort_desc.gif | Bin 0 -> 59 bytes
.../gxt/images/gray/panel/corners-sprite.gif | Bin 0 -> 765 bytes
.../gxt/images/gray/panel/left-right.gif | Bin 0 -> 63 bytes
.../webapp/gxt/images/gray/panel/light-hd.gif | Bin 0 -> 827 bytes
.../gxt/images/gray/panel/tool-sprite-tpl.gif | Bin 0 -> 971 bytes
.../gxt/images/gray/panel/tool-sprites.gif | Bin 0 -> 4464 bytes
.../images/gray/panel/tools-sprites-trans.gif | Bin 0 -> 2640 bytes
.../gxt/images/gray/panel/top-bottom.gif | Bin 0 -> 873 bytes
.../gxt/images/gray/panel/top-bottom.png | Bin 0 -> 218 bytes
.../gray/panel/white-corners-sprite.gif | Bin 0 -> 1365 bytes
.../images/gray/panel/white-left-right.gif | Bin 0 -> 815 bytes
.../images/gray/panel/white-top-bottom.gif | Bin 0 -> 868 bytes
src/main/webapp/gxt/images/gray/qtip/bg.gif | Bin 0 -> 1024 bytes
.../webapp/gxt/images/gray/qtip/close.gif | Bin 0 -> 972 bytes
.../gxt/images/gray/qtip/tip-sprite.gif | Bin 0 -> 4033 bytes
src/main/webapp/gxt/images/gray/s.gif | Bin 0 -> 43 bytes
.../gxt/images/gray/tabs/scroll-left.gif | Bin 0 -> 1260 bytes
.../gxt/images/gray/tabs/scroll-right.gif | Bin 0 -> 1269 bytes
.../gxt/images/gray/tabs/scroller-bg.gif | Bin 0 -> 1090 bytes
.../gray/tabs/tab-btm-inactive-left-bg.gif | Bin 0 -> 881 bytes
.../gray/tabs/tab-btm-inactive-right-bg.gif | Bin 0 -> 1383 bytes
.../gxt/images/gray/tabs/tab-btm-left-bg.gif | Bin 0 -> 863 bytes
.../gxt/images/gray/tabs/tab-btm-right-bg.gif | Bin 0 -> 1402 bytes
.../webapp/gxt/images/gray/tabs/tab-close.gif | Bin 0 -> 896 bytes
.../gxt/images/gray/tabs/tab-strip-bg.gif | Bin 0 -> 835 bytes
.../gxt/images/gray/tabs/tab-strip-bg.png | Bin 0 -> 259 bytes
.../gxt/images/gray/tabs/tab-strip-btm-bg.gif | Bin 0 -> 826 bytes
.../gxt/images/gray/tabs/tabs-sprite.gif | Bin 0 -> 2109 bytes
.../webapp/gxt/images/gray/toolbar/bg.gif | Bin 0 -> 853 bytes
.../images/gray/toolbar/btn-arrow-light.gif | Bin 0 -> 916 bytes
.../gxt/images/gray/toolbar/btn-arrow.gif | Bin 0 -> 919 bytes
.../gxt/images/gray/toolbar/btn-over-bg.gif | Bin 0 -> 837 bytes
.../gxt/images/gray/toolbar/gray-bg.gif | Bin 0 -> 815 bytes
.../webapp/gxt/images/gray/toolbar/tb-bg.gif | Bin 0 -> 862 bytes
.../gxt/images/gray/toolbar/tb-btn-sprite.gif | Bin 0 -> 1021 bytes
.../gxt/images/gray/window/icon-error.gif | Bin 0 -> 1669 bytes
.../gxt/images/gray/window/icon-info.gif | Bin 0 -> 1586 bytes
.../gxt/images/gray/window/icon-question.gif | Bin 0 -> 1607 bytes
.../gxt/images/gray/window/icon-warning.gif | Bin 0 -> 1483 bytes
.../gxt/images/gray/window/left-corners.png | Bin 0 -> 325 bytes
.../images/gray/window/left-corners.pspimage | Bin 0 -> 4385 bytes
.../gxt/images/gray/window/left-right.png | Bin 0 -> 2815 bytes
.../gxt/images/gray/window/right-corners.png | Bin 0 -> 344 bytes
.../gxt/images/gray/window/top-bottom.png | Bin 0 -> 2860 bytes
.../webapp/gxt/images/gxt/dd/insert-bg.gif | Bin 0 -> 54 bytes
.../gxt/images/gxt/grid/row-editor-bg.gif | Bin 0 -> 819 bytes
.../gxt/images/gxt/grid/row-editor-btns.gif | Bin 0 -> 1087 bytes
.../webapp/gxt/images/gxt/icons/bottom2.gif | Bin 0 -> 927 bytes
.../webapp/gxt/images/gxt/icons/columns.gif | Bin 0 -> 962 bytes
src/main/webapp/gxt/images/gxt/icons/done.gif | Bin 0 -> 133 bytes
.../gxt/images/gxt/icons/doubleleft2.gif | Bin 0 -> 174 bytes
.../gxt/images/gxt/icons/doubleright2.gif | Bin 0 -> 171 bytes
.../webapp/gxt/images/gxt/icons/down2.gif | Bin 0 -> 920 bytes
.../gxt/images/gxt/icons/folder-closed.gif | Bin 0 -> 999 bytes
.../gxt/images/gxt/icons/folder-closed.png | Bin 0 -> 686 bytes
.../webapp/gxt/images/gxt/icons/folder.gif | Bin 0 -> 996 bytes
.../webapp/gxt/images/gxt/icons/folder.png | Bin 0 -> 711 bytes
.../gxt/images/gxt/icons/grid-loading.gif | Bin 0 -> 701 bytes
.../webapp/gxt/images/gxt/icons/hmenu-asc.gif | Bin 0 -> 931 bytes
.../gxt/images/gxt/icons/hmenu-desc.gif | Bin 0 -> 930 bytes
.../webapp/gxt/images/gxt/icons/left2.gif | Bin 0 -> 920 bytes
.../webapp/gxt/images/gxt/icons/loading.gif | Bin 0 -> 771 bytes
.../webapp/gxt/images/gxt/icons/nowait.gif | Bin 0 -> 884 bytes
.../images/gxt/icons/page-first-disabled.gif | Bin 0 -> 925 bytes
.../gxt/images/gxt/icons/page-first.gif | Bin 0 -> 925 bytes
.../images/gxt/icons/page-last-disabled.gif | Bin 0 -> 923 bytes
.../webapp/gxt/images/gxt/icons/page-last.gif | Bin 0 -> 923 bytes
.../images/gxt/icons/page-next-disabled.gif | Bin 0 -> 875 bytes
.../webapp/gxt/images/gxt/icons/page-next.gif | Bin 0 -> 875 bytes
.../images/gxt/icons/page-prev-disabled.gif | Bin 0 -> 879 bytes
.../webapp/gxt/images/gxt/icons/page-prev.gif | Bin 0 -> 879 bytes
.../webapp/gxt/images/gxt/icons/paging.gif | Bin 0 -> 989 bytes
.../webapp/gxt/images/gxt/icons/right2.gif | Bin 0 -> 925 bytes
src/main/webapp/gxt/images/gxt/icons/tabs.gif | Bin 0 -> 917 bytes
src/main/webapp/gxt/images/gxt/icons/top2.gif | Bin 0 -> 927 bytes
src/main/webapp/gxt/images/gxt/icons/up2.gif | Bin 0 -> 920 bytes
src/main/webapp/gxt/images/gxt/icons/wait.gif | Bin 0 -> 1100 bytes
.../gxt/images/gxt/info/corners-sprite.gif | Bin 0 -> 1154 bytes
.../webapp/gxt/images/gxt/info/top-bottom.gif | Bin 0 -> 1329 bytes
.../gxt/images/gxt/menu/disabledcheck.gif | Bin 0 -> 907 bytes
.../webapp/gxt/images/gxt/shared/clear.gif | Bin 0 -> 43 bytes
.../gxt/images/gxt/shared/large-loading.gif | Bin 0 -> 3236 bytes
.../gxt/images/gxt/shared/select-18-bg.gif | Bin 0 -> 508 bytes
.../images/gxt/shared/select-19-bg-gray.gif | Bin 0 -> 1192 bytes
.../gxt/images/gxt/shared/select-19-bg.gif | Bin 0 -> 2018 bytes
.../gxt/images/gxt/shared/select-bg.gif | Bin 0 -> 1431 bytes
.../gxt/images/gxt/shared/select-light.gif | Bin 0 -> 540 bytes
.../webapp/gxt/images/gxt/table/row-over.gif | Bin 0 -> 823 bytes
.../gxt/images/gxt/table/vs-column-bg.gif | Bin 0 -> 548 bytes
.../webapp/gxt/images/gxt/table/vsort-asc.gif | Bin 0 -> 846 bytes
.../gxt/images/gxt/table/vsort-desc.gif | Bin 0 -> 845 bytes
.../webapp/gxt/images/gxt/tree/checked.gif | Bin 0 -> 533 bytes
.../gxt/images/gxt/tree/joint-close.gif | Bin 0 -> 900 bytes
.../webapp/gxt/images/gxt/tree/joint-open.gif | Bin 0 -> 898 bytes
.../webapp/gxt/images/gxt/tree/notchecked.gif | Bin 0 -> 321 bytes
.../gxt/tree/tree-table-special-col-sel.gif | Bin 0 -> 835 bytes
.../gxt/tree/tree-table-special-col.gif | Bin 0 -> 96 bytes
src/main/webapp/gxt/images/gxt/tree/vnode.gif | Bin 0 -> 846 bytes
.../gxt/images/gxt/tree/vnode_transparent.gif | Bin 0 -> 972 bytes
.../gxt/themes/access/css/xtheme-access.css | 2347 ++++++
.../themes/access/images/box/corners-blue.gif | Bin 0 -> 1010 bytes
.../gxt/themes/access/images/box/corners.gif | Bin 0 -> 1005 bytes
.../gxt/themes/access/images/box/l-blue.gif | Bin 0 -> 810 bytes
.../webapp/gxt/themes/access/images/box/l.gif | Bin 0 -> 810 bytes
.../gxt/themes/access/images/box/r-blue.gif | Bin 0 -> 810 bytes
.../webapp/gxt/themes/access/images/box/r.gif | Bin 0 -> 810 bytes
.../gxt/themes/access/images/box/tb-blue.gif | Bin 0 -> 843 bytes
.../gxt/themes/access/images/box/tb.gif | Bin 0 -> 839 bytes
.../gxt/themes/access/images/button/arrow.gif | Bin 0 -> 833 bytes
.../gxt/themes/access/images/button/btn.gif | Bin 0 -> 2871 bytes
.../themes/access/images/button/group-cs.gif | Bin 0 -> 2459 bytes
.../themes/access/images/button/group-lr.gif | Bin 0 -> 861 bytes
.../themes/access/images/button/group-tb.gif | Bin 0 -> 70 bytes
.../access/images/button/s-arrow-b-noline.gif | Bin 0 -> 904 bytes
.../themes/access/images/button/s-arrow-b.gif | Bin 0 -> 943 bytes
.../access/images/button/s-arrow-bo.gif | Bin 0 -> 961 bytes
.../access/images/button/s-arrow-noline.gif | Bin 0 -> 875 bytes
.../themes/access/images/button/s-arrow-o.gif | Bin 0 -> 155 bytes
.../themes/access/images/button/s-arrow.gif | Bin 0 -> 956 bytes
.../images/default/box/corners-blue.gif | Bin 0 -> 1010 bytes
.../access/images/default/box/corners.gif | Bin 0 -> 1005 bytes
.../access/images/default/box/l-blue.gif | Bin 0 -> 810 bytes
.../themes/access/images/default/box/l.gif | Bin 0 -> 810 bytes
.../access/images/default/box/r-blue.gif | Bin 0 -> 810 bytes
.../themes/access/images/default/box/r.gif | Bin 0 -> 810 bytes
.../access/images/default/box/tb-blue.gif | Bin 0 -> 851 bytes
.../themes/access/images/default/box/tb.gif | Bin 0 -> 839 bytes
.../access/images/default/button/arrow.gif | Bin 0 -> 828 bytes
.../images/default/button/btn-arrow.gif | Bin 0 -> 870 bytes
.../images/default/button/btn-sprite.gif | Bin 0 -> 1341 bytes
.../access/images/default/button/btn.gif | Bin 0 -> 4298 bytes
.../access/images/default/button/group-cs.gif | Bin 0 -> 2459 bytes
.../access/images/default/button/group-lr.gif | Bin 0 -> 861 bytes
.../access/images/default/button/group-tb.gif | Bin 0 -> 846 bytes
.../default/button/s-arrow-b-noline.gif | Bin 0 -> 898 bytes
.../images/default/button/s-arrow-b.gif | Bin 0 -> 937 bytes
.../images/default/button/s-arrow-bo.gif | Bin 0 -> 955 bytes
.../images/default/button/s-arrow-noline.gif | Bin 0 -> 863 bytes
.../images/default/button/s-arrow-o.gif | Bin 0 -> 937 bytes
.../access/images/default/button/s-arrow.gif | Bin 0 -> 937 bytes
.../access/images/default/dd/drop-add.gif | Bin 0 -> 1001 bytes
.../access/images/default/dd/drop-no.gif | Bin 0 -> 949 bytes
.../access/images/default/dd/drop-yes.gif | Bin 0 -> 1016 bytes
.../access/images/default/editor/tb-bold.gif | Bin 0 -> 892 bytes
.../images/default/editor/tb-font-color.gif | Bin 0 -> 905 bytes
.../default/editor/tb-font-decrease.gif | Bin 0 -> 879 bytes
.../default/editor/tb-font-highlight.gif | Bin 0 -> 941 bytes
.../default/editor/tb-font-increase.gif | Bin 0 -> 906 bytes
.../images/default/editor/tb-italic.gif | Bin 0 -> 862 bytes
.../default/editor/tb-justify-center.gif | Bin 0 -> 848 bytes
.../images/default/editor/tb-justify-left.gif | Bin 0 -> 848 bytes
.../default/editor/tb-justify-right.gif | Bin 0 -> 848 bytes
.../access/images/default/editor/tb-link.gif | Bin 0 -> 1060 bytes
.../access/images/default/editor/tb-ol.gif | Bin 0 -> 877 bytes
.../images/default/editor/tb-source.gif | Bin 0 -> 952 bytes
.../images/default/editor/tb-sprite.gif | Bin 0 -> 2072 bytes
.../access/images/default/editor/tb-ul.gif | Bin 0 -> 871 bytes
.../images/default/editor/tb-underline.gif | Bin 0 -> 884 bytes
.../access/images/default/form/checkbox.gif | Bin 0 -> 2061 bytes
.../images/default/form/clear-trigger.gif | Bin 0 -> 1988 bytes
.../images/default/form/date-trigger.gif | Bin 0 -> 1603 bytes
.../images/default/form/error-tip-corners.gif | Bin 0 -> 4183 bytes
.../images/default/form/exclamation.gif | Bin 0 -> 996 bytes
.../access/images/default/form/radio.gif | Bin 0 -> 1746 bytes
.../images/default/form/search-trigger.gif | Bin 0 -> 2182 bytes
.../access/images/default/form/spinner.gif | Bin 0 -> 3186 bytes
.../access/images/default/form/text-bg.gif | Bin 0 -> 819 bytes
.../images/default/form/trigger-tpl.gif | Bin 0 -> 1487 bytes
.../access/images/default/form/trigger.gif | Bin 0 -> 1688 bytes
.../access/images/default/gradient-bg.gif | Bin 0 -> 1472 bytes
.../images/default/grid/arrow-left-white.gif | Bin 0 -> 825 bytes
.../images/default/grid/arrow-right-white.gif | Bin 0 -> 825 bytes
.../images/default/grid/col-move-bottom.gif | Bin 0 -> 868 bytes
.../images/default/grid/col-move-top.gif | Bin 0 -> 869 bytes
.../access/images/default/grid/columns.gif | Bin 0 -> 962 bytes
.../access/images/default/grid/dirty.gif | Bin 0 -> 832 bytes
.../access/images/default/grid/done.gif | Bin 0 -> 133 bytes
.../access/images/default/grid/drop-no.gif | Bin 0 -> 947 bytes
.../access/images/default/grid/drop-yes.gif | Bin 0 -> 860 bytes
.../access/images/default/grid/footer-bg.gif | Bin 0 -> 834 bytes
.../images/default/grid/grid-blue-hd.gif | Bin 0 -> 829 bytes
.../images/default/grid/grid-blue-split.gif | Bin 0 -> 817 bytes
.../access/images/default/grid/grid-hrow.gif | Bin 0 -> 855 bytes
.../images/default/grid/grid-loading.gif | Bin 0 -> 701 bytes
.../access/images/default/grid/grid-split.gif | Bin 0 -> 817 bytes
.../images/default/grid/grid-vista-hd.gif | Bin 0 -> 829 bytes
.../images/default/grid/grid3-hd-btn.gif | Bin 0 -> 1298 bytes
.../images/default/grid/grid3-hrow-group.gif | Bin 0 -> 811 bytes
.../images/default/grid/grid3-hrow-over.gif | Bin 0 -> 823 bytes
.../access/images/default/grid/grid3-hrow.gif | Bin 0 -> 836 bytes
.../default/grid/grid3-special-col-bg.gif | Bin 0 -> 837 bytes
.../default/grid/grid3-special-col-sel-bg.gif | Bin 0 -> 843 bytes
.../access/images/default/grid/group-by.gif | Bin 0 -> 917 bytes
.../default/grid/group-expand-sprite.gif | Bin 0 -> 955 bytes
.../access/images/default/grid/hd-pop.gif | Bin 0 -> 839 bytes
.../access/images/default/grid/hmenu-asc.gif | Bin 0 -> 931 bytes
.../access/images/default/grid/hmenu-desc.gif | Bin 0 -> 930 bytes
.../access/images/default/grid/hmenu-lock.gif | Bin 0 -> 955 bytes
.../access/images/default/grid/hmenu-lock.png | Bin 0 -> 648 bytes
.../images/default/grid/hmenu-unlock.gif | Bin 0 -> 971 bytes
.../images/default/grid/hmenu-unlock.png | Bin 0 -> 697 bytes
.../images/default/grid/invalid_line.gif | Bin 0 -> 815 bytes
.../access/images/default/grid/loading.gif | Bin 0 -> 771 bytes
.../access/images/default/grid/mso-hd.gif | Bin 0 -> 875 bytes
.../access/images/default/grid/nowait.gif | Bin 0 -> 884 bytes
.../default/grid/page-first-disabled.gif | Bin 0 -> 925 bytes
.../access/images/default/grid/page-first.gif | Bin 0 -> 925 bytes
.../default/grid/page-last-disabled.gif | Bin 0 -> 923 bytes
.../access/images/default/grid/page-last.gif | Bin 0 -> 923 bytes
.../default/grid/page-next-disabled.gif | Bin 0 -> 875 bytes
.../access/images/default/grid/page-next.gif | Bin 0 -> 875 bytes
.../default/grid/page-prev-disabled.gif | Bin 0 -> 879 bytes
.../access/images/default/grid/page-prev.gif | Bin 0 -> 879 bytes
.../images/default/grid/pick-button.gif | Bin 0 -> 1036 bytes
.../access/images/default/grid/refresh.gif | Bin 0 -> 977 bytes
.../access/images/default/grid/refresh.png | Bin 0 -> 791 bytes
.../images/default/grid/row-check-sprite.gif | Bin 0 -> 1083 bytes
.../images/default/grid/row-expand-sprite.gif | Bin 0 -> 955 bytes
.../access/images/default/grid/row-over.gif | Bin 0 -> 823 bytes
.../access/images/default/grid/row-sel.gif | Bin 0 -> 823 bytes
.../access/images/default/grid/sort-hd.gif | Bin 0 -> 1473 bytes
.../access/images/default/grid/sort_asc.gif | Bin 0 -> 830 bytes
.../access/images/default/grid/sort_desc.gif | Bin 0 -> 833 bytes
.../access/images/default/grid/wait.gif | Bin 0 -> 1100 bytes
.../access/images/default/layout/collapse.gif | Bin 0 -> 842 bytes
.../access/images/default/layout/expand.gif | Bin 0 -> 842 bytes
.../images/default/layout/gradient-bg.gif | Bin 0 -> 1472 bytes
.../images/default/layout/mini-bottom.gif | Bin 0 -> 856 bytes
.../images/default/layout/mini-left.gif | Bin 0 -> 871 bytes
.../images/default/layout/mini-right.gif | Bin 0 -> 872 bytes
.../access/images/default/layout/mini-top.gif | Bin 0 -> 856 bytes
.../images/default/layout/ns-collapse.gif | Bin 0 -> 842 bytes
.../images/default/layout/ns-expand.gif | Bin 0 -> 843 bytes
.../images/default/layout/panel-close.gif | Bin 0 -> 829 bytes
.../images/default/layout/panel-title-bg.gif | Bin 0 -> 838 bytes
.../default/layout/panel-title-light-bg.gif | Bin 0 -> 835 bytes
.../access/images/default/layout/stick.gif | Bin 0 -> 874 bytes
.../access/images/default/layout/stuck.gif | Bin 0 -> 92 bytes
.../images/default/layout/tab-close-on.gif | Bin 0 -> 880 bytes
.../images/default/layout/tab-close.gif | Bin 0 -> 859 bytes
.../access/images/default/menu/checked.gif | Bin 0 -> 959 bytes
.../images/default/menu/group-checked.gif | Bin 0 -> 891 bytes
.../access/images/default/menu/item-over.gif | Bin 0 -> 820 bytes
.../images/default/menu/menu-parent.gif | Bin 0 -> 854 bytes
.../access/images/default/menu/menu.gif | Bin 0 -> 834 bytes
.../access/images/default/menu/unchecked.gif | Bin 0 -> 941 bytes
.../images/default/panel/corners-sprite.gif | Bin 0 -> 1418 bytes
.../images/default/panel/left-right.gif | Bin 0 -> 815 bytes
.../access/images/default/panel/light-hd.gif | Bin 0 -> 827 bytes
.../images/default/panel/tool-sprite-tpl.gif | Bin 0 -> 971 bytes
.../images/default/panel/tool-sprites.gif | Bin 0 -> 4392 bytes
.../default/panel/tools-sprites-trans.gif | Bin 0 -> 2843 bytes
.../images/default/panel/top-bottom.gif | Bin 0 -> 875 bytes
.../images/default/panel/top-bottom.png | Bin 0 -> 218 bytes
.../default/panel/white-corners-sprite.gif | Bin 0 -> 1366 bytes
.../images/default/panel/white-left-right.gif | Bin 0 -> 815 bytes
.../images/default/panel/white-top-bottom.gif | Bin 0 -> 872 bytes
.../images/default/progress/progress-bg.gif | Bin 0 -> 834 bytes
.../themes/access/images/default/qtip/bg.gif | Bin 0 -> 1091 bytes
.../access/images/default/qtip/close.gif | Bin 0 -> 972 bytes
.../images/default/qtip/tip-anchor-sprite.gif | Bin 0 -> 951 bytes
.../access/images/default/qtip/tip-sprite.gif | Bin 0 -> 4271 bytes
.../gxt/themes/access/images/default/s.gif | Bin 0 -> 43 bytes
.../themes/access/images/default/shadow-c.png | Bin 0 -> 118 bytes
.../access/images/default/shadow-lr.png | Bin 0 -> 135 bytes
.../themes/access/images/default/shadow.png | Bin 0 -> 311 bytes
.../images/default/shared/blue-loading.gif | Bin 0 -> 3236 bytes
.../access/images/default/shared/calendar.gif | Bin 0 -> 979 bytes
.../access/images/default/shared/clear.gif | Bin 0 -> 43 bytes
.../access/images/default/shared/glass-bg.gif | Bin 0 -> 873 bytes
.../images/default/shared/hd-sprite.gif | Bin 0 -> 1099 bytes
.../images/default/shared/large-loading.gif | Bin 0 -> 3236 bytes
.../access/images/default/shared/left-btn.gif | Bin 0 -> 870 bytes
.../images/default/shared/loading-balls.gif | Bin 0 -> 2118 bytes
.../images/default/shared/right-btn.gif | Bin 0 -> 871 bytes
.../access/images/default/shared/warning.gif | Bin 0 -> 960 bytes
.../images/default/sizer/e-handle-dark.gif | Bin 0 -> 1062 bytes
.../access/images/default/sizer/e-handle.gif | Bin 0 -> 1586 bytes
.../images/default/sizer/ne-handle-dark.gif | Bin 0 -> 839 bytes
.../access/images/default/sizer/ne-handle.gif | Bin 0 -> 854 bytes
.../images/default/sizer/nw-handle-dark.gif | Bin 0 -> 839 bytes
.../access/images/default/sizer/nw-handle.gif | Bin 0 -> 853 bytes
.../images/default/sizer/s-handle-dark.gif | Bin 0 -> 1060 bytes
.../access/images/default/sizer/s-handle.gif | Bin 0 -> 1318 bytes
.../images/default/sizer/se-handle-dark.gif | Bin 0 -> 838 bytes
.../access/images/default/sizer/se-handle.gif | Bin 0 -> 853 bytes
.../access/images/default/sizer/square.gif | Bin 0 -> 864 bytes
.../images/default/sizer/sw-handle-dark.gif | Bin 0 -> 839 bytes
.../access/images/default/sizer/sw-handle.gif | Bin 0 -> 855 bytes
.../images/default/slider/slider-bg.png | Bin 0 -> 300 bytes
.../images/default/slider/slider-thumb.png | Bin 0 -> 933 bytes
.../images/default/slider/slider-v-bg.png | Bin 0 -> 288 bytes
.../images/default/slider/slider-v-thumb.png | Bin 0 -> 883 bytes
.../images/default/tabs/scroll-left.gif | Bin 0 -> 1295 bytes
.../images/default/tabs/scroll-right.gif | Bin 0 -> 1300 bytes
.../images/default/tabs/scroller-bg.gif | Bin 0 -> 1100 bytes
.../default/tabs/tab-btm-inactive-left-bg.gif | Bin 0 -> 886 bytes
.../tabs/tab-btm-inactive-right-bg.gif | Bin 0 -> 1386 bytes
.../images/default/tabs/tab-btm-left-bg.gif | Bin 0 -> 863 bytes
.../images/default/tabs/tab-btm-right-bg.gif | Bin 0 -> 1402 bytes
.../access/images/default/tabs/tab-close.gif | Bin 0 -> 896 bytes
.../images/default/tabs/tab-strip-bg.gif | Bin 0 -> 835 bytes
.../images/default/tabs/tab-strip-bg.png | Bin 0 -> 259 bytes
.../images/default/tabs/tab-strip-btm-bg.gif | Bin 0 -> 826 bytes
.../images/default/tabs/tabs-sprite.gif | Bin 0 -> 2120 bytes
.../access/images/default/toolbar/bg.gif | Bin 0 -> 904 bytes
.../default/toolbar/btn-arrow-light.gif | Bin 0 -> 916 bytes
.../images/default/toolbar/btn-arrow.gif | Bin 0 -> 919 bytes
.../images/default/toolbar/btn-over-bg.gif | Bin 0 -> 837 bytes
.../access/images/default/toolbar/gray-bg.gif | Bin 0 -> 832 bytes
.../access/images/default/toolbar/more.gif | Bin 0 -> 845 bytes
.../access/images/default/toolbar/tb-bg.gif | Bin 0 -> 862 bytes
.../images/default/toolbar/tb-btn-sprite.gif | Bin 0 -> 1127 bytes
.../default/toolbar/tb-xl-btn-sprite.gif | Bin 0 -> 1663 bytes
.../images/default/toolbar/tb-xl-sep.gif | Bin 0 -> 810 bytes
.../access/images/default/tree/arrows.gif | Bin 0 -> 1024 bytes
.../access/images/default/tree/drop-add.gif | Bin 0 -> 1001 bytes
.../images/default/tree/drop-between.gif | Bin 0 -> 907 bytes
.../access/images/default/tree/drop-no.gif | Bin 0 -> 949 bytes
.../access/images/default/tree/drop-over.gif | Bin 0 -> 911 bytes
.../access/images/default/tree/drop-under.gif | Bin 0 -> 911 bytes
.../access/images/default/tree/drop-yes.gif | Bin 0 -> 1016 bytes
.../default/tree/elbow-end-minus-nl.gif | Bin 0 -> 898 bytes
.../images/default/tree/elbow-end-minus.gif | Bin 0 -> 905 bytes
.../images/default/tree/elbow-end-plus-nl.gif | Bin 0 -> 900 bytes
.../images/default/tree/elbow-end-plus.gif | Bin 0 -> 907 bytes
.../access/images/default/tree/elbow-end.gif | Bin 0 -> 844 bytes
.../access/images/default/tree/elbow-line.gif | Bin 0 -> 846 bytes
.../images/default/tree/elbow-minus-nl.gif | Bin 0 -> 898 bytes
.../images/default/tree/elbow-minus.gif | Bin 0 -> 908 bytes
.../images/default/tree/elbow-plus-nl.gif | Bin 0 -> 900 bytes
.../access/images/default/tree/elbow-plus.gif | Bin 0 -> 910 bytes
.../access/images/default/tree/elbow.gif | Bin 0 -> 850 bytes
.../images/default/tree/folder-open.gif | Bin 0 -> 956 bytes
.../access/images/default/tree/folder.gif | Bin 0 -> 952 bytes
.../access/images/default/tree/leaf.gif | Bin 0 -> 945 bytes
.../access/images/default/tree/loading.gif | Bin 0 -> 771 bytes
.../themes/access/images/default/tree/s.gif | Bin 0 -> 43 bytes
.../images/default/window/icon-error.gif | Bin 0 -> 1669 bytes
.../images/default/window/icon-info.gif | Bin 0 -> 1586 bytes
.../images/default/window/icon-question.gif | Bin 0 -> 1607 bytes
.../images/default/window/icon-warning.gif | Bin 0 -> 1483 bytes
.../images/default/window/left-corners.png | Bin 0 -> 200 bytes
.../images/default/window/left-right.png | Bin 0 -> 152 bytes
.../images/default/window/right-corners.png | Bin 0 -> 256 bytes
.../images/default/window/top-bottom.png | Bin 0 -> 180 bytes
.../themes/access/images/editor/tb-source.gif | Bin 0 -> 952 bytes
.../themes/access/images/editor/tb-sprite.gif | Bin 0 -> 1994 bytes
.../themes/access/images/form/checkbox.gif | Bin 0 -> 2061 bytes
.../access/images/form/clear-trigger.gif | Bin 0 -> 2027 bytes
.../access/images/form/date-trigger.gif | Bin 0 -> 1620 bytes
.../access/images/form/error-tip-corners.gif | Bin 0 -> 4183 bytes
.../themes/access/images/form/exclamation.gif | Bin 0 -> 614 bytes
.../gxt/themes/access/images/form/radio.gif | Bin 0 -> 1746 bytes
.../access/images/form/search-trigger.gif | Bin 0 -> 2134 bytes
.../gxt/themes/access/images/form/spinner.gif | Bin 0 -> 4142 bytes
.../gxt/themes/access/images/form/text-bg.gif | Bin 0 -> 66 bytes
.../access/images/form/trigger-single.gif | Bin 0 -> 605 bytes
.../themes/access/images/form/trigger-tpl.gif | Bin 0 -> 908 bytes
.../gxt/themes/access/images/form/trigger.gif | Bin 0 -> 1451 bytes
.../access/images/grid/arrow-left-white.gif | Bin 0 -> 825 bytes
.../access/images/grid/arrow-right-white.gif | Bin 0 -> 825 bytes
.../access/images/grid/col-move-bottom.gif | Bin 0 -> 868 bytes
.../access/images/grid/col-move-top.gif | Bin 0 -> 869 bytes
.../gxt/themes/access/images/grid/columns.gif | Bin 0 -> 962 bytes
.../gxt/themes/access/images/grid/dirty.gif | Bin 0 -> 68 bytes
.../gxt/themes/access/images/grid/done.gif | Bin 0 -> 133 bytes
.../gxt/themes/access/images/grid/drop-no.gif | Bin 0 -> 947 bytes
.../themes/access/images/grid/drop-yes.gif | Bin 0 -> 860 bytes
.../themes/access/images/grid/footer-bg.gif | Bin 0 -> 834 bytes
.../access/images/grid/grid-blue-hd.gif | Bin 0 -> 829 bytes
.../access/images/grid/grid-blue-split.gif | Bin 0 -> 47 bytes
.../themes/access/images/grid/grid-hrow.gif | Bin 0 -> 855 bytes
.../access/images/grid/grid-loading.gif | Bin 0 -> 701 bytes
.../themes/access/images/grid/grid-split.gif | Bin 0 -> 817 bytes
.../access/images/grid/grid-vista-hd.gif | Bin 0 -> 829 bytes
.../images/grid/grid3-hd-btn-contrast.gif | Bin 0 -> 336 bytes
.../access/images/grid/grid3-hd-btn.gif | Bin 0 -> 419 bytes
.../access/images/grid/grid3-hrow-over.gif | Bin 0 -> 268 bytes
.../themes/access/images/grid/grid3-hrow.gif | Bin 0 -> 164 bytes
.../images/grid/grid3-special-col-bg.gif | Bin 0 -> 162 bytes
.../images/grid/grid3-special-col-sel-bg.gif | Bin 0 -> 162 bytes
.../themes/access/images/grid/group-by.gif | Bin 0 -> 917 bytes
.../access/images/grid/group-collapse.gif | Bin 0 -> 77 bytes
.../images/grid/group-expand-sprite.gif | Bin 0 -> 131 bytes
.../access/images/grid/group-expand.gif | Bin 0 -> 82 bytes
.../gxt/themes/access/images/grid/hd-pop.gif | Bin 0 -> 839 bytes
.../themes/access/images/grid/hmenu-asc.gif | Bin 0 -> 931 bytes
.../themes/access/images/grid/hmenu-desc.gif | Bin 0 -> 930 bytes
.../themes/access/images/grid/hmenu-lock.gif | Bin 0 -> 955 bytes
.../themes/access/images/grid/hmenu-lock.png | Bin 0 -> 648 bytes
.../access/images/grid/hmenu-unlock.gif | Bin 0 -> 971 bytes
.../access/images/grid/hmenu-unlock.png | Bin 0 -> 697 bytes
.../access/images/grid/invalid_line.gif | Bin 0 -> 46 bytes
.../gxt/themes/access/images/grid/loading.gif | Bin 0 -> 771 bytes
.../gxt/themes/access/images/grid/mso-hd.gif | Bin 0 -> 875 bytes
.../gxt/themes/access/images/grid/nowait.gif | Bin 0 -> 884 bytes
.../images/grid/page-first-disabled.gif | Bin 0 -> 340 bytes
.../themes/access/images/grid/page-first.gif | Bin 0 -> 96 bytes
.../access/images/grid/page-last-disabled.gif | Bin 0 -> 340 bytes
.../themes/access/images/grid/page-last.gif | Bin 0 -> 96 bytes
.../access/images/grid/page-next-disabled.gif | Bin 0 -> 195 bytes
.../themes/access/images/grid/page-next.gif | Bin 0 -> 82 bytes
.../access/images/grid/page-prev-disabled.gif | Bin 0 -> 197 bytes
.../themes/access/images/grid/page-prev.gif | Bin 0 -> 82 bytes
.../themes/access/images/grid/pick-button.gif | Bin 0 -> 1036 bytes
.../gxt/themes/access/images/grid/refresh.gif | Bin 0 -> 91 bytes
.../access/images/grid/row-check-sel.gif | Bin 0 -> 932 bytes
.../access/images/grid/row-check-sprite.gif | Bin 0 -> 1083 bytes
.../themes/access/images/grid/row-check.gif | Bin 0 -> 918 bytes
.../access/images/grid/row-expand-sprite.gif | Bin 0 -> 955 bytes
.../themes/access/images/grid/row-over.gif | Bin 0 -> 823 bytes
.../gxt/themes/access/images/grid/row-sel.gif | Bin 0 -> 823 bytes
.../gxt/themes/access/images/grid/sort-hd.gif | Bin 0 -> 2075 bytes
.../themes/access/images/grid/sort_asc.gif | Bin 0 -> 74 bytes
.../themes/access/images/grid/sort_desc.gif | Bin 0 -> 73 bytes
.../gxt/themes/access/images/grid/wait.gif | Bin 0 -> 1100 bytes
.../themes/access/images/icons/bottom2.gif | Bin 0 -> 927 bytes
.../access/images/icons/doubleleft2.gif | Bin 0 -> 174 bytes
.../access/images/icons/doubleright2.gif | Bin 0 -> 171 bytes
.../gxt/themes/access/images/icons/down2.gif | Bin 0 -> 920 bytes
.../gxt/themes/access/images/icons/left2.gif | Bin 0 -> 920 bytes
.../gxt/themes/access/images/icons/right2.gif | Bin 0 -> 925 bytes
.../gxt/themes/access/images/icons/top2.gif | Bin 0 -> 927 bytes
.../gxt/themes/access/images/icons/up2.gif | Bin 0 -> 920 bytes
.../access/images/layout/mini-bottom.gif | Bin 0 -> 856 bytes
.../themes/access/images/layout/mini-top.gif | Bin 0 -> 856 bytes
.../gxt/themes/access/images/menu/checked.gif | Bin 0 -> 959 bytes
.../access/images/menu/group-checked.gif | Bin 0 -> 856 bytes
.../themes/access/images/menu/item-over.gif | Bin 0 -> 820 bytes
.../themes/access/images/menu/menu-parent.gif | Bin 0 -> 73 bytes
.../gxt/themes/access/images/menu/menu.gif | Bin 0 -> 826 bytes
.../themes/access/images/menu/unchecked.gif | Bin 0 -> 941 bytes
.../access/images/panel/corners-sprite.gif | Bin 0 -> 577 bytes
.../themes/access/images/panel/left-right.gif | Bin 0 -> 52 bytes
.../themes/access/images/panel/light-hd.gif | Bin 0 -> 161 bytes
.../themes/access/images/panel/tool-close.gif | Bin 0 -> 104 bytes
.../access/images/panel/tool-collapse.gif | Bin 0 -> 95 bytes
.../access/images/panel/tool-expand.gif | Bin 0 -> 93 bytes
.../themes/access/images/panel/tool-gear.gif | Bin 0 -> 106 bytes
.../access/images/panel/tool-maximize.gif | Bin 0 -> 111 bytes
.../access/images/panel/tool-minimize.gif | Bin 0 -> 93 bytes
.../themes/access/images/panel/tool-pin.gif | Bin 0 -> 101 bytes
.../access/images/panel/tool-sprite-tpl.gif | Bin 0 -> 971 bytes
.../access/images/panel/tool-sprites.gif | Bin 0 -> 1981 bytes
.../images/panel/tools-sprites-trans.gif | Bin 0 -> 2843 bytes
.../themes/access/images/panel/top-bottom.gif | Bin 0 -> 116 bytes
.../images/panel/white-corners-sprite.gif | Bin 0 -> 1366 bytes
.../access/images/panel/white-left-right.gif | Bin 0 -> 52 bytes
.../access/images/panel/white-top-bottom.gif | Bin 0 -> 115 bytes
.../access/images/progress/progress-bg.gif | Bin 0 -> 151 bytes
.../gxt/themes/access/images/qtip/close.gif | Bin 0 -> 972 bytes
.../access/images/qtip/tip-anchor-sprite.gif | Bin 0 -> 951 bytes
.../themes/access/images/qtip/tip-sprite.gif | Bin 0 -> 3376 bytes
.../themes/access/images/shared/glass-bg.gif | Bin 0 -> 103 bytes
.../themes/access/images/shared/hd-sprite.gif | Bin 0 -> 673 bytes
.../themes/access/images/shared/left-btn.gif | Bin 0 -> 77 bytes
.../themes/access/images/shared/right-btn.gif | Bin 0 -> 79 bytes
.../access/images/sizer/e-handle-dark.gif | Bin 0 -> 248 bytes
.../themes/access/images/sizer/e-handle.gif | Bin 0 -> 753 bytes
.../access/images/sizer/ne-handle-dark.gif | Bin 0 -> 66 bytes
.../themes/access/images/sizer/ne-handle.gif | Bin 0 -> 115 bytes
.../access/images/sizer/nw-handle-dark.gif | Bin 0 -> 66 bytes
.../themes/access/images/sizer/nw-handle.gif | Bin 0 -> 114 bytes
.../access/images/sizer/s-handle-dark.gif | Bin 0 -> 246 bytes
.../themes/access/images/sizer/s-handle.gif | Bin 0 -> 494 bytes
.../access/images/sizer/se-handle-dark.gif | Bin 0 -> 65 bytes
.../themes/access/images/sizer/se-handle.gif | Bin 0 -> 114 bytes
.../gxt/themes/access/images/sizer/square.gif | Bin 0 -> 123 bytes
.../access/images/sizer/sw-handle-dark.gif | Bin 0 -> 66 bytes
.../themes/access/images/sizer/sw-handle.gif | Bin 0 -> 116 bytes
.../themes/access/images/slider/slider-bg.png | Bin 0 -> 3636 bytes
.../images/slider/slider-thumb-single.png | Bin 0 -> 3067 bytes
.../access/images/slider/slider-thumb.png | Bin 0 -> 3436 bytes
.../access/images/slider/slider-v-bg.png | Bin 0 -> 3630 bytes
.../access/images/slider/slider-v-thumb.png | Bin 0 -> 3432 bytes
.../themes/access/images/tabs/scroll-left.gif | Bin 0 -> 996 bytes
.../access/images/tabs/scroll-right.gif | Bin 0 -> 999 bytes
.../images/tabs/tab-btm-inactive-left-bg.gif | Bin 0 -> 130 bytes
.../images/tabs/tab-btm-inactive-right-bg.gif | Bin 0 -> 513 bytes
.../access/images/tabs/tab-btm-left-bg.gif | Bin 0 -> 117 bytes
.../access/images/tabs/tab-btm-right-bg.gif | Bin 0 -> 512 bytes
.../themes/access/images/tabs/tab-close.gif | Bin 0 -> 76 bytes
.../access/images/tabs/tab-strip-bg.gif | Bin 0 -> 827 bytes
.../access/images/tabs/tab-strip-btm-bg.gif | Bin 0 -> 70 bytes
.../themes/access/images/tabs/tabs-sprite.gif | Bin 0 -> 1221 bytes
.../gxt/themes/access/images/toolbar/bg.gif | Bin 0 -> 82 bytes
.../access/images/toolbar/btn-arrow-light.gif | Bin 0 -> 916 bytes
.../access/images/toolbar/btn-arrow.gif | Bin 0 -> 919 bytes
.../access/images/toolbar/btn-over-bg.gif | Bin 0 -> 837 bytes
.../themes/access/images/toolbar/gray-bg.gif | Bin 0 -> 832 bytes
.../gxt/themes/access/images/toolbar/more.gif | Bin 0 -> 67 bytes
.../access/images/toolbar/s-arrow-bo.gif | Bin 0 -> 186 bytes
.../access/images/toolbar/tb-btn-sprite.gif | Bin 0 -> 1127 bytes
.../images/toolbar/tb-xl-btn-sprite.gif | Bin 0 -> 1663 bytes
.../access/images/toolbar/tb-xl-sep.gif | Bin 0 -> 810 bytes
.../gxt/themes/access/images/tree/arrows.gif | Bin 0 -> 183 bytes
.../themes/access/images/tree/drop-add.gif | Bin 0 -> 1001 bytes
.../access/images/tree/drop-between.gif | Bin 0 -> 907 bytes
.../gxt/themes/access/images/tree/drop-no.gif | Bin 0 -> 949 bytes
.../themes/access/images/tree/drop-over.gif | Bin 0 -> 911 bytes
.../themes/access/images/tree/drop-under.gif | Bin 0 -> 911 bytes
.../themes/access/images/tree/drop-yes.gif | Bin 0 -> 1016 bytes
.../access/images/tree/elbow-end-minus-nl.gif | Bin 0 -> 86 bytes
.../access/images/tree/elbow-end-minus.gif | Bin 0 -> 104 bytes
.../access/images/tree/elbow-end-plus-nl.gif | Bin 0 -> 89 bytes
.../access/images/tree/elbow-end-plus.gif | Bin 0 -> 108 bytes
.../themes/access/images/tree/elbow-end.gif | Bin 0 -> 844 bytes
.../themes/access/images/tree/elbow-line.gif | Bin 0 -> 846 bytes
.../access/images/tree/elbow-minus-nl.gif | Bin 0 -> 86 bytes
.../themes/access/images/tree/elbow-minus.gif | Bin 0 -> 106 bytes
.../access/images/tree/elbow-plus-nl.gif | Bin 0 -> 89 bytes
.../themes/access/images/tree/elbow-plus.gif | Bin 0 -> 111 bytes
.../gxt/themes/access/images/tree/elbow.gif | Bin 0 -> 850 bytes
.../themes/access/images/tree/folder-open.gif | Bin 0 -> 342 bytes
.../gxt/themes/access/images/tree/folder.gif | Bin 0 -> 340 bytes
.../gxt/themes/access/images/tree/leaf.gif | Bin 0 -> 945 bytes
.../gxt/themes/access/images/tree/loading.gif | Bin 0 -> 771 bytes
.../gxt/themes/access/images/tree/s.gif | Bin 0 -> 43 bytes
.../access/images/tree/tree-collapsed.png | Bin 0 -> 2928 bytes
.../access/images/tree/tree-expanded.png | Bin 0 -> 2904 bytes
.../access/images/window/icon-error.gif | Bin 0 -> 256 bytes
.../themes/access/images/window/icon-info.gif | Bin 0 -> 172 bytes
.../access/images/window/icon-question.gif | Bin 0 -> 217 bytes
.../access/images/window/icon-warning.gif | Bin 0 -> 173 bytes
.../access/images/window/left-corners.png | Bin 0 -> 3612 bytes
.../access/images/window/left-right.png | Bin 0 -> 3578 bytes
.../access/images/window/right-corners.png | Bin 0 -> 3612 bytes
.../access/images/window/top-bottom.png | Bin 0 -> 3600 bytes
.../gxt/themes/slate/css/xtheme-slate.css | 1058 +++
.../slate/images/slate/button/arrow.gif | Bin 0 -> 59 bytes
.../slate/images/slate/button/btn-arrow.gif | Bin 0 -> 871 bytes
.../slate/images/slate/button/btn-sprite.gif | Bin 0 -> 1394 bytes
.../themes/slate/images/slate/button/btn.gif | Bin 0 -> 4687 bytes
.../slate/images/slate/button/group-cs.gif | Bin 0 -> 1598 bytes
.../slate/images/slate/button/group-lr.gif | Bin 0 -> 94 bytes
.../slate/images/slate/button/group-tb.gif | Bin 0 -> 88 bytes
.../images/slate/button/s-arrow-b-noline.gif | Bin 0 -> 82 bytes
.../slate/images/slate/button/s-arrow-b.gif | Bin 0 -> 151 bytes
.../slate/images/slate/button/s-arrow-bo.gif | Bin 0 -> 151 bytes
.../images/slate/button/s-arrow-noline.gif | Bin 0 -> 82 bytes
.../slate/images/slate/button/s-arrow-o.gif | Bin 0 -> 152 bytes
.../slate/images/slate/button/s-arrow.gif | Bin 0 -> 152 bytes
.../slate/images/slate/editor/tb-sprite.gif | Bin 0 -> 1994 bytes
.../slate/images/slate/form/checkbox.gif | Bin 0 -> 1483 bytes
.../slate/images/slate/form/clear-trigger.gif | Bin 0 -> 2091 bytes
.../slate/images/slate/form/date-trigger.gif | Bin 0 -> 1612 bytes
.../images/slate/form/error-tip-corners.gif | Bin 0 -> 4183 bytes
.../themes/slate/images/slate/form/radio.gif | Bin 0 -> 1846 bytes
.../images/slate/form/search-trigger.gif | Bin 0 -> 2345 bytes
.../slate/images/slate/form/spinner.gif | Bin 0 -> 1857 bytes
.../slate/images/slate/form/trigger-tpl.gif | Bin 0 -> 1506 bytes
.../slate/images/slate/form/trigger.gif | Bin 0 -> 1657 bytes
.../themes/slate/images/slate/gradient-bg.gif | Bin 0 -> 1472 bytes
.../images/slate/grid/arrow-left-white.gif | Bin 0 -> 825 bytes
.../images/slate/grid/arrow-right-white.gif | Bin 0 -> 825 bytes
.../images/slate/grid/col-move-bottom.gif | Bin 0 -> 868 bytes
.../slate/images/slate/grid/col-move-top.gif | Bin 0 -> 869 bytes
.../slate/images/slate/grid/footer-bg.gif | Bin 0 -> 834 bytes
.../slate/images/slate/grid/grid-blue-hd.gif | Bin 0 -> 829 bytes
.../images/slate/grid/grid-blue-split.gif | Bin 0 -> 817 bytes
.../slate/images/slate/grid/grid-hrow.gif | Bin 0 -> 855 bytes
.../slate/images/slate/grid/grid-split.gif | Bin 0 -> 817 bytes
.../slate/images/slate/grid/grid-vista-hd.gif | Bin 0 -> 829 bytes
.../slate/images/slate/grid/grid3-hd-btn.gif | Bin 0 -> 1212 bytes
.../images/slate/grid/grid3-hrow-over.gif | Bin 0 -> 826 bytes
.../slate/images/slate/grid/grid3-hrow.gif | Bin 0 -> 828 bytes
.../slate/grid/grid3-special-col-bg.gif | Bin 0 -> 837 bytes
.../slate/grid/grid3-special-col-sel-bg.gif | Bin 0 -> 847 bytes
.../images/slate/grid/group-expand-sprite.gif | Bin 0 -> 955 bytes
.../themes/slate/images/slate/grid/mso-hd.gif | Bin 0 -> 875 bytes
.../images/slate/grid/page-first-disabled.gif | Bin 0 -> 925 bytes
.../slate/images/slate/grid/page-first.gif | Bin 0 -> 925 bytes
.../images/slate/grid/page-last-disabled.gif | Bin 0 -> 923 bytes
.../slate/images/slate/grid/page-last.gif | Bin 0 -> 923 bytes
.../images/slate/grid/page-next-disabled.gif | Bin 0 -> 875 bytes
.../slate/images/slate/grid/page-next.gif | Bin 0 -> 875 bytes
.../images/slate/grid/page-prev-disabled.gif | Bin 0 -> 879 bytes
.../slate/images/slate/grid/page-prev.gif | Bin 0 -> 879 bytes
.../slate/images/slate/grid/refresh.gif | Bin 0 -> 980 bytes
.../slate/images/slate/grid/row-over.gif | Bin 0 -> 823 bytes
.../slate/images/slate/grid/row-sel.gif | Bin 0 -> 823 bytes
.../slate/images/slate/grid/sort_asc.gif | Bin 0 -> 830 bytes
.../slate/images/slate/grid/sort_desc.gif | Bin 0 -> 833 bytes
.../slate/images/slate/menu/checked.gif | Bin 0 -> 894 bytes
.../slate/images/slate/menu/group-checked.gif | Bin 0 -> 887 bytes
.../images/slate/menu/item-over - Copy.gif | Bin 0 -> 833 bytes
.../slate/images/slate/menu/item-over.gif | Bin 0 -> 833 bytes
.../slate/images/slate/menu/menu-parent.gif | Bin 0 -> 853 bytes
.../themes/slate/images/slate/menu/menu.gif | Bin 0 -> 839 bytes
.../slate/images/slate/menu/unchecked.gif | Bin 0 -> 877 bytes
.../images/slate/panel/corners-sprite.gif | Bin 0 -> 1384 bytes
.../slate/images/slate/panel/left-right.gif | Bin 0 -> 807 bytes
.../slate/images/slate/panel/light-hd.gif | Bin 0 -> 844 bytes
.../images/slate/panel/tool-sprite-tpl.gif | Bin 0 -> 1197 bytes
.../slate/images/slate/panel/tool-sprites.gif | Bin 0 -> 5787 bytes
.../slate/panel/tools-sprites-trans.gif | Bin 0 -> 2640 bytes
.../slate/images/slate/panel/top-bottom.gif | Bin 0 -> 870 bytes
.../slate/images/slate/panel/top-bottom.png | Bin 0 -> 215 bytes
.../slate/panel/white-corners-sprite.gif | Bin 0 -> 1365 bytes
.../images/slate/panel/white-left-right.gif | Bin 0 -> 805 bytes
.../images/slate/panel/white-top-bottom.gif | Bin 0 -> 864 bytes
.../images/slate/progress/progress-bg.gif | Bin 0 -> 837 bytes
.../gxt/themes/slate/images/slate/qtip/bg.gif | Bin 0 -> 1091 bytes
.../themes/slate/images/slate/qtip/close.gif | Bin 0 -> 972 bytes
.../slate/images/slate/qtip/tip-sprite.gif | Bin 0 -> 4129 bytes
.../gxt/themes/slate/images/slate/s.gif | Bin 0 -> 43 bytes
.../slate/images/slate/shared/glass-bg.gif | Bin 0 -> 865 bytes
.../slate/images/slate/shared/hd-sprite.gif | Bin 0 -> 1099 bytes
.../slate/images/slate/shared/left-btn.gif | Bin 0 -> 878 bytes
.../slate/images/slate/shared/right-btn.gif | Bin 0 -> 879 bytes
.../images/slate/sizer/e-handle-dark.gif | Bin 0 -> 1069 bytes
.../slate/images/slate/sizer/e-handle.gif | Bin 0 -> 1599 bytes
.../images/slate/sizer/ne-handle-dark.gif | Bin 0 -> 843 bytes
.../slate/images/slate/sizer/ne-handle.gif | Bin 0 -> 839 bytes
.../images/slate/sizer/nw-handle-dark.gif | Bin 0 -> 841 bytes
.../slate/images/slate/sizer/nw-handle.gif | Bin 0 -> 839 bytes
.../images/slate/sizer/s-handle-dark.gif | Bin 0 -> 1051 bytes
.../slate/images/slate/sizer/s-handle.gif | Bin 0 -> 1311 bytes
.../images/slate/sizer/se-handle-dark.gif | Bin 0 -> 844 bytes
.../slate/images/slate/sizer/se-handle.gif | Bin 0 -> 838 bytes
.../slate/images/slate/sizer/square.gif | Bin 0 -> 841 bytes
.../images/slate/sizer/sw-handle-dark.gif | Bin 0 -> 844 bytes
.../slate/images/slate/sizer/sw-handle.gif | Bin 0 -> 839 bytes
.../slate/images/slate/slider/slider-bg.png | Bin 0 -> 1033 bytes
.../images/slate/slider/slider-thumb.png | Bin 0 -> 1569 bytes
.../slate/images/slate/slider/slider-v-bg.png | Bin 0 -> 1016 bytes
.../images/slate/slider/slider-v-thumb.png | Bin 0 -> 1476 bytes
.../slate/images/slate/tabs/scroll-left.gif | Bin 0 -> 1260 bytes
.../slate/images/slate/tabs/scroll-right.gif | Bin 0 -> 1269 bytes
.../slate/images/slate/tabs/scroller-bg.gif | Bin 0 -> 1090 bytes
.../slate/tabs/tab-btm-inactive-left-bg.gif | Bin 0 -> 883 bytes
.../slate/tabs/tab-btm-inactive-right-bg.gif | Bin 0 -> 1553 bytes
.../images/slate/tabs/tab-btm-left-bg.gif | Bin 0 -> 888 bytes
.../images/slate/tabs/tab-btm-right-bg.gif | Bin 0 -> 1586 bytes
.../slate/images/slate/tabs/tab-close.gif | Bin 0 -> 853 bytes
.../slate/images/slate/tabs/tab-strip-bg.gif | Bin 0 -> 906 bytes
.../slate/images/slate/tabs/tab-strip-bg.png | Bin 0 -> 259 bytes
.../images/slate/tabs/tab-strip-btm-bg.gif | Bin 0 -> 826 bytes
.../slate/images/slate/tabs/tabs-sprite.gif | Bin 0 -> 2625 bytes
.../themes/slate/images/slate/toolbar/bg.gif | Bin 0 -> 540 bytes
.../images/slate/toolbar/btn-arrow-light.gif | Bin 0 -> 916 bytes
.../slate/images/slate/toolbar/btn-arrow.gif | Bin 0 -> 908 bytes
.../images/slate/toolbar/btn-over-bg.gif | Bin 0 -> 829 bytes
.../slate/images/slate/toolbar/gray-bg.gif | Bin 0 -> 832 bytes
.../themes/slate/images/slate/toolbar/sep.gif | Bin 0 -> 66 bytes
.../slate/images/slate/toolbar/tb-bg.gif | Bin 0 -> 862 bytes
.../images/slate/toolbar/tb-btn-sprite.gif | Bin 0 -> 1070 bytes
.../themes/slate/images/slate/tree/arrows.gif | Bin 0 -> 1024 bytes
.../slate/images/slate/window/icon-error.gif | Bin 0 -> 1669 bytes
.../slate/images/slate/window/icon-info.gif | Bin 0 -> 1586 bytes
.../images/slate/window/icon-question.gif | Bin 0 -> 1607 bytes
.../images/slate/window/icon-warning.gif | Bin 0 -> 1483 bytes
.../images/slate/window/left-corners.png | Bin 0 -> 432 bytes
.../slate/images/slate/window/left-right.png | Bin 0 -> 160 bytes
.../images/slate/window/right-corners.png | Bin 0 -> 459 bytes
.../slate/images/slate/window/top-bottom.png | Bin 0 -> 294 bytes
src/main/webapp/images/cell-blue.jpg | Bin 0 -> 2684 bytes
src/main/webapp/images/cell-blue2.jpg | Bin 0 -> 504 bytes
src/main/webapp/images/cell-grey.jpg | Bin 0 -> 2590 bytes
src/main/webapp/images/cell-grey2.jpg | Bin 0 -> 381 bytes
.../client/GwtTestSpeciesDiscovery.java | 38 +
.../SpeciesDiscoveryJUnit.gwt.xml | 9 +
1291 files changed, 44580 insertions(+)
create mode 100644 .classpath
create mode 100644 .project
create mode 100644 .settings/.jsdtscope
create mode 100644 .settings/com.google.appengine.eclipse.core.prefs
create mode 100644 .settings/com.google.gdt.eclipse.core.prefs
create mode 100644 .settings/com.google.gwt.eclipse.core.prefs
create mode 100644 .settings/org.eclipse.core.resources.prefs
create mode 100644 .settings/org.eclipse.jdt.core.prefs
create mode 100644 .settings/org.eclipse.m2e.core.prefs
create mode 100644 .settings/org.eclipse.wst.common.component
create mode 100644 .settings/org.eclipse.wst.common.project.facet.core.xml
create mode 100644 .settings/org.eclipse.wst.jsdt.ui.superType.container
create mode 100644 .settings/org.maven.ide.eclipse.prefs
create mode 100644 SpeciesDiscoveryTest-dev.launch
create mode 100644 SpeciesDiscoveryTest-prod.launch
create mode 100644 distro/INSTALL
create mode 100644 distro/LICENSE
create mode 100644 distro/MAINTAINERS
create mode 100644 distro/README
create mode 100644 distro/changelog.xml
create mode 100644 distro/descriptor.xml
create mode 100644 distro/profile.xml
create mode 100644 distro/svnpath.txt
create mode 100644 pom.xml
create mode 100644 src/main/java/META-INF/persistence.xml
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/ConstantsSpeciesDiscovery.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/OccurrencesWindow.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/SearchBorderLayoutPanel.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/SearchController.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/SpeciesDiscovery.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/SpeciesResultFilterAccordionPanel.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/SpeciesResultsPanelCardLayout.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/SpeciesSearchFormPanel.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/advancedsearch/AdvancedSearchInterface.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/advancedsearch/AdvancedSearchPanelEnum.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/advancedsearch/AdvancedSearchPanelInterface.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/advancedsearch/AdvancedSearchPanelManager.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/advancedsearch/BoundsFilter.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/advancedsearch/ClassificationFilter.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/advancedsearch/ColumnContainer.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/advancedsearch/DataSourceFilter.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/advancedsearch/DateFilter.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/advancedsearch/RegionFilter.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/cluster/TabItemForTaxonomyRow.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/cluster/TablesForResultRow.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/cluster/TablesForTaxonomyRow.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/detail/SpeciesDetail.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/detail/SpeciesDetailsPanel.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/ActiveButtonCheckAllRowEvent.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/ActiveButtonCheckAllRowEventHandler.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/ActiveFilterOnResultEvent.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/ActiveFilterOnResultEventHandler.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/ActiveMaskLoadingGrid.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/ActiveMaskLoadingGridHandler.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/CapabilitySelectedEvent.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/CapabilitySelectedEventHandler.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/ChangeFilterClassificationOnResultEvent.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/ChangeFilterClassificationOnResultEventHandler.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/CompletedLoadDataSourceEvent.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/CompletedLoadDataSourceEventHandler.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/CreateOccurrenceJobEvent.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/CreateOccurrenceJobEventHandler.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/CreateTaxonomyJobEvent.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/CreateTaxonomyJobEventHandler.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/DisableFilterEvent.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/DisableFilterEventHandler.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/LoadDataSourceEvent.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/LoadDataSourceEventHandler.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/ReLoadListJobEvent.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/ReLoadListJobEventHandler.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/ReSubmitJobEvent.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/ReSubmitJobEventHandler.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/SaveItemsEvent.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/SaveItemsEventHandler.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/SaveJobEvent.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/SaveJobEventHandler.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/SearchCompleteEvent.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/SearchCompleteEventHandler.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/SearchEvent.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/SearchEventHandler.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/SearchStartedEvent.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/SearchStartedEventHandler.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/SelectAllEvent.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/SelectAllEventHandler.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/SetCommonNamesEvent.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/SetCommonNamesEventHandler.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/ShowOccurrencesEvent.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/ShowOccurrencesEventHandler.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/ShowOccurrencesMapEvent.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/ShowOccurrencesMapEventHandler.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/ShowOnlySelectedRowEvent.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/ShowOnlySelectedRowEventHandler.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/UpdateAllRowSelectionEvent.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/UpdateAllRowSelectionEventHandler.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/UpdateFilterOnResultEvent.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/UpdateFilterOnResultEventHandler.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/UpdateRowSelectionEvent.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/UpdateRowSelectionEventHandler.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/ViewDetailsOfSelectedEvent.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/ViewDetailsOfSelectedEventHandler.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/externalsystem/ExternalSystemInterface.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/externalsystem/OtherInformationSystemsEnum.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/externalsystem/OtherMappingSystemsEnum.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/filterresult/ClassificationFilter.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/filterresult/DataProviderFilter.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/filterresult/DataSourceFilter.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/filterresult/RankFilter.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/filterresult/ResultFilterPanelEnum.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/filterresult/ResultFilterPanelInterface.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/filterresult/ResultFilterPanelManager.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/filterresult/TypeFilter.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/gridview/OccurrenceJobGridManager.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/gridview/ResultRowResultsPanel.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/gridview/TaxonomyRowResultsPanel.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/job/SpeciesJobPanel.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/job/occurrence/OccurrenceGridJob.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/job/occurrence/OccurrenceJobInfoFields.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/job/occurrence/OccurrenceJobSpeciesPanel.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/job/occurrence/OccurrenceJobSpeciesProgressBar.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/job/occurrence/OccurrenceJobTable.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/job/occurrence/OccurrenceJobsInfoContainer.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/job/occurrence/OccurrenceWindowInfoJobsSpecies.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/job/taxonomy/TaxonomyGridJob.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/job/taxonomy/TaxonomyJobInfoFields.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/job/taxonomy/TaxonomyJobSpeciesPanel.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/job/taxonomy/TaxonomyJobSpeciesProgressBar.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/job/taxonomy/TaxonomyJobTable.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/job/taxonomy/TaxonomyJobsInfoContainer.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/job/taxonomy/TaxonomyWindowInfoJobsSpecies.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/model/ClassificationModel.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/model/QueryModel.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/resources/Resources.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/resources/Toggle.js
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/resources/arrow-down.png
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/resources/arrow-down2.png
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/resources/arrow-right.png
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/resources/arrow-right2.png
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/resources/arrow-turn.png
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/resources/attention.png
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/resources/blueplace.png
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/resources/checkbox-empty.png
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/resources/checkbox-full.png
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/resources/checkno.png
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/resources/checkyes.png
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/resources/collapse.png
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/resources/credits.png
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/resources/datailsWindow.png
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/resources/delete.png
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/resources/detailsview.png
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/resources/detailsview2.png
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/resources/expand.png
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/resources/gbif.gif
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/resources/gear.png
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/resources/getSynonyms.png
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/resources/gis_products.png
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/resources/gridview.png
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/resources/gridview2.png
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/resources/help.jpeg
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/resources/help.png
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/resources/image-notfound.png
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/resources/imagesGrid.png
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/resources/info-icon.png
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/resources/loading-balls.gif
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/resources/nopicavailable.png
create mode 100755 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/resources/occurrence/blueplace.png
create mode 100755 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/resources/occurrence/blueplace1.png
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/resources/occurrence/blueplace16px.png
create mode 100755 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/resources/occurrence/blueplace2.png
create mode 100755 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/resources/occurrence/blueplace3.png
create mode 100755 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/resources/occurrence/blueplace4+.png
create mode 100755 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/resources/occurrence/blueplace4.png
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/resources/order_alphabetical_asc.gif
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/resources/refresh.gif
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/resources/reload-icon.png
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/resources/save_products.png
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/resources/save_products24.png
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/resources/save_products_old.png
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/resources/search-icon.png
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/resources/select-icon.png
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/resources/select-icon2.png
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/resources/select-icon3.png
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/resources/show_products.png
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/resources/sortascending.gif
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/resources/sortascending.png
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/resources/sorter.jpg
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/resources/taxonomy/category.png
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/resources/taxonomy/taxonomy.png
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/resources/taxonomy/taxonomy1.png
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/resources/taxonomy/taxonomy16px.png
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/resources/taxonomy/taxonomy2.png
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/resources/taxonomy/taxonomy3.png
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/resources/taxonomy/taxonomy4.png
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/resources/taxonomy/taxonomy4More.png
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/resultview/DescriptiveSpeciesGrid.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/resultview/DescriptiveTaxonomyGrid.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/resultview/SpeciesGrid.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/resultview/TaxonomyGrid.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/rpc/TaxonomySearchService.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/rpc/TaxonomySearchServiceAsync.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/util/ExtendedTimer.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/util/GridField.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/util/JavascriptInjector.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/util/OccurencesGridFields.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/util/SpeciesDetailsFields.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/util/SpeciesFilterFields.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/util/SpeciesGridFields.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/util/TaxonomyGridField.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/util/Util.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/util/stream/DataSource.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/util/stream/DataSourceManager.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/util/stream/EditListener.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/util/stream/OccurrencesDataSource.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/util/stream/ResultRowDataSource.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/util/stream/StreamPagingLoader.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/util/stream/StreamPagingLoaderListener.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/util/stream/StreamPagingToolBar.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/util/stream/StreamState.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/util/stream/TaxonomyRowDataSource.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/view/ExtendedLiveGridView.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/view/SpeciesThumbsView.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/view/SpeciesViewInterface.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/window/HelpQueryWindow.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/window/MessageBoxConfirm.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/window/MessageDialog.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/window/ViewDetailsWindow.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/window/WindowCredits.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/window/WindowOpenUrl.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/server/TaxonomySearchServiceImpl.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/server/asl/SessionUtil.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/server/job/KeyStringList.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/server/job/OccurrenceJobUtil.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/server/job/OccurrenceKeys.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/server/job/TaxonomyJobUtil.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/server/persistence/AbstractDaoBuffer.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/server/persistence/AbstractSelectableDaoBuffer.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/server/persistence/DaoSession.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/server/persistence/OccurrenceBuffer.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/server/persistence/ResultRowBuffer.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/server/persistence/TaxonomyRowBuffer.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/server/persistence/dao/AbstractPersistence.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/server/persistence/dao/OccurrenceJobPersistence.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/server/persistence/dao/OccurrenceRowPersistence.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/server/persistence/dao/ResultRowPersistence.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/server/persistence/dao/TaxonRowPersistence.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/server/persistence/dao/TaxonomyJobPersistence.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/server/persistence/dao/TaxonomyRowPersistence.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/server/service/IteratorChainBuilder.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/server/service/OccurrenceConverter.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/server/service/QueryBuilder.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/server/service/ResultItemConverter.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/server/service/SpeciesService.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/server/service/StreamIterator.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/server/service/TaxonomyItemConverter.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/server/session/Fetcher.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/server/session/FetchingBuffer.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/server/session/FetchingSession.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/server/session/FetchingSessionUtil.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/server/session/FilterableFetchingBuffer.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/server/session/SelectableFetchingBuffer.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/server/stream/Aggregator.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/server/stream/AggregatorIterator.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/server/stream/CSVGenerator.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/server/stream/CastConverter.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/server/stream/CloseableIterator.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/server/stream/ConversionIterator.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/server/stream/Converter.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/server/stream/CounterAggregator.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/server/stream/IteratorPointInfo.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/server/stream/IteratorWrapper.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/server/stream/KeyProvider.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/server/stream/OccurenceCSVConverter.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/server/stream/OccurenceCSVConverterOpenModeller.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/server/stream/StreamExtend.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/server/stream/aggregation/FieldAggregator.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/server/stream/aggregation/FieldKeyProvider.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/server/stream/aggregation/SpeciesKeyProvider.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/server/stream/aggregation/TaxonomyClassificationAggregator.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/server/stream/aggregation/TaxonomyKeyProvider.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/server/util/DateUtil.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/server/util/QueryUtil.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/server/util/StorageUtil.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/server/util/XStreamUtil.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/shared/CommonName.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/shared/Coordinate.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/shared/DataSource.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/shared/DataSourceCapability.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/shared/DataSourceModel.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/shared/DataSourceRepositoryInfo.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/shared/DownloadState.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/shared/FetchingElement.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/shared/FieldVerifier.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/shared/ItemParameter.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/shared/JobOccurrencesModel.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/shared/JobTaxonomyModel.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/shared/MainTaxonomicRankEnum.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/shared/Occurrence.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/shared/OccurrenceBatch.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/shared/OccurrencesJob.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/shared/OccurrencesSaveEnum.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/shared/OccurrencesStatus.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/shared/ResultRow.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/shared/SaveFileFormat.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/shared/SearchFilters.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/shared/SearchResult.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/shared/SearchResultType.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/shared/SearchServiceException.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/shared/SearchStatus.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/shared/SearchType.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/shared/SelectableElement.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/shared/SpeciesCapability.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/shared/Taxon.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/shared/TaxonChildren.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/shared/TaxonomyInterface.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/shared/TaxonomyJob.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/shared/TaxonomyProvider.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/shared/TaxonomyRow.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/shared/cluster/ClusterCommonNameDataSource.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/shared/cluster/ClusterStructuresForResultRow.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/shared/cluster/ClusterStructuresForTaxonomyRow.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/shared/filter/FilterCriteria.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/shared/filter/ResultFilter.java
create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/shared/util/NormalizeString.java
create mode 100644 src/main/resources/org/gcube/portlets/user/speciesdiscovery/SpeciesDiscovery.gwt.xml
create mode 100644 src/main/webapp/SpeciesDiscovery.css
create mode 100644 src/main/webapp/SpeciesDiscovery.html
create mode 100644 src/main/webapp/WEB-INF/web.xml
create mode 100644 src/main/webapp/gxt/chart/open-flash-chart.swf
create mode 100644 src/main/webapp/gxt/css/gxt-all.css
create mode 100644 src/main/webapp/gxt/css/gxt-gray.css
create mode 100644 src/main/webapp/gxt/desktop/css/desktop.css
create mode 100644 src/main/webapp/gxt/desktop/images/add.gif
create mode 100644 src/main/webapp/gxt/desktop/images/delete.gif
create mode 100644 src/main/webapp/gxt/desktop/images/desktop.gif
create mode 100644 src/main/webapp/gxt/desktop/images/desktop3.jpg
create mode 100644 src/main/webapp/gxt/desktop/images/gears.gif
create mode 100644 src/main/webapp/gxt/desktop/images/gears.png
create mode 100644 src/main/webapp/gxt/desktop/images/grid.png
create mode 100644 src/main/webapp/gxt/desktop/images/hatch.gif
create mode 100644 src/main/webapp/gxt/desktop/images/hd-bg.gif
create mode 100644 src/main/webapp/gxt/desktop/images/hd-tb-bg.gif
create mode 100644 src/main/webapp/gxt/desktop/images/icon_padlock.png
create mode 100644 src/main/webapp/gxt/desktop/images/icons-bg.png
create mode 100644 src/main/webapp/gxt/desktop/images/launcher-bg.gif
create mode 100644 src/main/webapp/gxt/desktop/images/launcher-btn.gif
create mode 100644 src/main/webapp/gxt/desktop/images/logout.gif
create mode 100644 src/main/webapp/gxt/desktop/images/logout.png
create mode 100644 src/main/webapp/gxt/desktop/images/member.gif
create mode 100644 src/main/webapp/gxt/desktop/images/member.png
create mode 100644 src/main/webapp/gxt/desktop/images/plugin.gif
create mode 100644 src/main/webapp/gxt/desktop/images/powered.gif
create mode 100644 src/main/webapp/gxt/desktop/images/powered.png
create mode 100644 src/main/webapp/gxt/desktop/images/s.gif
create mode 100644 src/main/webapp/gxt/desktop/images/tabs.gif
create mode 100644 src/main/webapp/gxt/desktop/images/taskbar/black/item-over.gif
create mode 100644 src/main/webapp/gxt/desktop/images/taskbar/black/scroll-left.gif
create mode 100644 src/main/webapp/gxt/desktop/images/taskbar/black/scroll-right.gif
create mode 100644 src/main/webapp/gxt/desktop/images/taskbar/black/start-menu-left-corners.png
create mode 100644 src/main/webapp/gxt/desktop/images/taskbar/black/start-menu-left-right.png
create mode 100644 src/main/webapp/gxt/desktop/images/taskbar/black/start-menu-right-corners.png
create mode 100644 src/main/webapp/gxt/desktop/images/taskbar/black/start-menu-right.png
create mode 100644 src/main/webapp/gxt/desktop/images/taskbar/black/start-menu-top-bottom.png
create mode 100644 src/main/webapp/gxt/desktop/images/taskbar/black/startbutton-icon.gif
create mode 100644 src/main/webapp/gxt/desktop/images/taskbar/black/startbutton.gif
create mode 100644 src/main/webapp/gxt/desktop/images/taskbar/black/taskbar-split-h.gif
create mode 100644 src/main/webapp/gxt/desktop/images/taskbar/black/taskbar-start-panel-bg.gif
create mode 100644 src/main/webapp/gxt/desktop/images/taskbar/black/taskbutton.gif
create mode 100644 src/main/webapp/gxt/desktop/images/taskbar/black/taskbuttons-panel-bg.gif
create mode 100644 src/main/webapp/gxt/desktop/images/winbar-bg.gif
create mode 100644 src/main/webapp/gxt/desktop/images/winbar-btn.gif
create mode 100644 src/main/webapp/gxt/desktop/images/windows-bg.gif
create mode 100644 src/main/webapp/gxt/desktop/wallpapers/desktop.jpg
create mode 100644 src/main/webapp/gxt/flash/swfobject.js
create mode 100644 src/main/webapp/gxt/images/default/box/corners-blue.gif
create mode 100644 src/main/webapp/gxt/images/default/box/corners.gif
create mode 100644 src/main/webapp/gxt/images/default/box/l-blue.gif
create mode 100644 src/main/webapp/gxt/images/default/box/l.gif
create mode 100644 src/main/webapp/gxt/images/default/box/r-blue.gif
create mode 100644 src/main/webapp/gxt/images/default/box/r.gif
create mode 100644 src/main/webapp/gxt/images/default/box/tb-blue.gif
create mode 100644 src/main/webapp/gxt/images/default/box/tb.gif
create mode 100644 src/main/webapp/gxt/images/default/button/arrow.gif
create mode 100644 src/main/webapp/gxt/images/default/button/btn-arrow.gif
create mode 100644 src/main/webapp/gxt/images/default/button/btn-sprite.gif
create mode 100644 src/main/webapp/gxt/images/default/button/btn.gif
create mode 100644 src/main/webapp/gxt/images/default/button/group-cs.gif
create mode 100644 src/main/webapp/gxt/images/default/button/group-lr.gif
create mode 100644 src/main/webapp/gxt/images/default/button/group-tb.gif
create mode 100644 src/main/webapp/gxt/images/default/button/s-arrow-b-noline.gif
create mode 100644 src/main/webapp/gxt/images/default/button/s-arrow-b.gif
create mode 100644 src/main/webapp/gxt/images/default/button/s-arrow-bo.gif
create mode 100644 src/main/webapp/gxt/images/default/button/s-arrow-noline.gif
create mode 100644 src/main/webapp/gxt/images/default/button/s-arrow-o.gif
create mode 100644 src/main/webapp/gxt/images/default/button/s-arrow.gif
create mode 100644 src/main/webapp/gxt/images/default/dd/drop-add.gif
create mode 100644 src/main/webapp/gxt/images/default/dd/drop-no.gif
create mode 100644 src/main/webapp/gxt/images/default/dd/drop-yes.gif
create mode 100644 src/main/webapp/gxt/images/default/editor/tb-bold.gif
create mode 100644 src/main/webapp/gxt/images/default/editor/tb-font-color.gif
create mode 100644 src/main/webapp/gxt/images/default/editor/tb-font-decrease.gif
create mode 100644 src/main/webapp/gxt/images/default/editor/tb-font-highlight.gif
create mode 100644 src/main/webapp/gxt/images/default/editor/tb-font-increase.gif
create mode 100644 src/main/webapp/gxt/images/default/editor/tb-italic.gif
create mode 100644 src/main/webapp/gxt/images/default/editor/tb-justify-center.gif
create mode 100644 src/main/webapp/gxt/images/default/editor/tb-justify-left.gif
create mode 100644 src/main/webapp/gxt/images/default/editor/tb-justify-right.gif
create mode 100644 src/main/webapp/gxt/images/default/editor/tb-link.gif
create mode 100644 src/main/webapp/gxt/images/default/editor/tb-ol.gif
create mode 100644 src/main/webapp/gxt/images/default/editor/tb-source.gif
create mode 100644 src/main/webapp/gxt/images/default/editor/tb-sprite.gif
create mode 100644 src/main/webapp/gxt/images/default/editor/tb-ul.gif
create mode 100644 src/main/webapp/gxt/images/default/editor/tb-underline.gif
create mode 100644 src/main/webapp/gxt/images/default/form/checkbox.gif
create mode 100644 src/main/webapp/gxt/images/default/form/clear-trigger.gif
create mode 100644 src/main/webapp/gxt/images/default/form/date-trigger.gif
create mode 100644 src/main/webapp/gxt/images/default/form/error-tip-corners.gif
create mode 100644 src/main/webapp/gxt/images/default/form/exclamation.gif
create mode 100644 src/main/webapp/gxt/images/default/form/radio.gif
create mode 100644 src/main/webapp/gxt/images/default/form/search-trigger.gif
create mode 100644 src/main/webapp/gxt/images/default/form/spinner.gif
create mode 100644 src/main/webapp/gxt/images/default/form/text-bg.gif
create mode 100644 src/main/webapp/gxt/images/default/form/trigger-tpl.gif
create mode 100644 src/main/webapp/gxt/images/default/form/trigger.gif
create mode 100644 src/main/webapp/gxt/images/default/gradient-bg.gif
create mode 100644 src/main/webapp/gxt/images/default/grid/arrow-left-white.gif
create mode 100644 src/main/webapp/gxt/images/default/grid/arrow-right-white.gif
create mode 100644 src/main/webapp/gxt/images/default/grid/col-move-bottom.gif
create mode 100644 src/main/webapp/gxt/images/default/grid/col-move-top.gif
create mode 100644 src/main/webapp/gxt/images/default/grid/columns.gif
create mode 100644 src/main/webapp/gxt/images/default/grid/dirty.gif
create mode 100644 src/main/webapp/gxt/images/default/grid/done.gif
create mode 100644 src/main/webapp/gxt/images/default/grid/drop-no.gif
create mode 100644 src/main/webapp/gxt/images/default/grid/drop-yes.gif
create mode 100644 src/main/webapp/gxt/images/default/grid/footer-bg.gif
create mode 100644 src/main/webapp/gxt/images/default/grid/grid-blue-hd.gif
create mode 100644 src/main/webapp/gxt/images/default/grid/grid-blue-split.gif
create mode 100644 src/main/webapp/gxt/images/default/grid/grid-hrow.gif
create mode 100644 src/main/webapp/gxt/images/default/grid/grid-loading.gif
create mode 100644 src/main/webapp/gxt/images/default/grid/grid-split.gif
create mode 100644 src/main/webapp/gxt/images/default/grid/grid-vista-hd.gif
create mode 100644 src/main/webapp/gxt/images/default/grid/grid3-hd-btn.gif
create mode 100644 src/main/webapp/gxt/images/default/grid/grid3-hrow-group.gif
create mode 100644 src/main/webapp/gxt/images/default/grid/grid3-hrow-over.gif
create mode 100644 src/main/webapp/gxt/images/default/grid/grid3-hrow.gif
create mode 100644 src/main/webapp/gxt/images/default/grid/grid3-special-col-bg.gif
create mode 100644 src/main/webapp/gxt/images/default/grid/grid3-special-col-sel-bg.gif
create mode 100644 src/main/webapp/gxt/images/default/grid/group-by.gif
create mode 100644 src/main/webapp/gxt/images/default/grid/group-expand-sprite.gif
create mode 100644 src/main/webapp/gxt/images/default/grid/hd-pop.gif
create mode 100644 src/main/webapp/gxt/images/default/grid/hmenu-asc.gif
create mode 100644 src/main/webapp/gxt/images/default/grid/hmenu-desc.gif
create mode 100644 src/main/webapp/gxt/images/default/grid/hmenu-lock.gif
create mode 100644 src/main/webapp/gxt/images/default/grid/hmenu-lock.png
create mode 100644 src/main/webapp/gxt/images/default/grid/hmenu-unlock.gif
create mode 100644 src/main/webapp/gxt/images/default/grid/hmenu-unlock.png
create mode 100644 src/main/webapp/gxt/images/default/grid/invalid_line.gif
create mode 100644 src/main/webapp/gxt/images/default/grid/loading.gif
create mode 100644 src/main/webapp/gxt/images/default/grid/mso-hd.gif
create mode 100644 src/main/webapp/gxt/images/default/grid/nowait.gif
create mode 100644 src/main/webapp/gxt/images/default/grid/page-first-disabled.gif
create mode 100644 src/main/webapp/gxt/images/default/grid/page-first.gif
create mode 100644 src/main/webapp/gxt/images/default/grid/page-last-disabled.gif
create mode 100644 src/main/webapp/gxt/images/default/grid/page-last.gif
create mode 100644 src/main/webapp/gxt/images/default/grid/page-next-disabled.gif
create mode 100644 src/main/webapp/gxt/images/default/grid/page-next.gif
create mode 100644 src/main/webapp/gxt/images/default/grid/page-prev-disabled.gif
create mode 100644 src/main/webapp/gxt/images/default/grid/page-prev.gif
create mode 100644 src/main/webapp/gxt/images/default/grid/pick-button.gif
create mode 100644 src/main/webapp/gxt/images/default/grid/refresh.gif
create mode 100644 src/main/webapp/gxt/images/default/grid/refresh.png
create mode 100644 src/main/webapp/gxt/images/default/grid/row-check-sprite.gif
create mode 100644 src/main/webapp/gxt/images/default/grid/row-expand-sprite.gif
create mode 100644 src/main/webapp/gxt/images/default/grid/row-over.gif
create mode 100644 src/main/webapp/gxt/images/default/grid/row-sel.gif
create mode 100644 src/main/webapp/gxt/images/default/grid/sort-hd.gif
create mode 100644 src/main/webapp/gxt/images/default/grid/sort_asc.gif
create mode 100644 src/main/webapp/gxt/images/default/grid/sort_desc.gif
create mode 100644 src/main/webapp/gxt/images/default/grid/wait.gif
create mode 100644 src/main/webapp/gxt/images/default/layout/collapse.gif
create mode 100644 src/main/webapp/gxt/images/default/layout/expand.gif
create mode 100644 src/main/webapp/gxt/images/default/layout/gradient-bg.gif
create mode 100644 src/main/webapp/gxt/images/default/layout/mini-bottom.gif
create mode 100644 src/main/webapp/gxt/images/default/layout/mini-left.gif
create mode 100644 src/main/webapp/gxt/images/default/layout/mini-right.gif
create mode 100644 src/main/webapp/gxt/images/default/layout/mini-top.gif
create mode 100644 src/main/webapp/gxt/images/default/layout/ns-collapse.gif
create mode 100644 src/main/webapp/gxt/images/default/layout/ns-expand.gif
create mode 100644 src/main/webapp/gxt/images/default/layout/panel-close.gif
create mode 100644 src/main/webapp/gxt/images/default/layout/panel-title-bg.gif
create mode 100644 src/main/webapp/gxt/images/default/layout/panel-title-light-bg.gif
create mode 100644 src/main/webapp/gxt/images/default/layout/stick.gif
create mode 100644 src/main/webapp/gxt/images/default/layout/stuck.gif
create mode 100644 src/main/webapp/gxt/images/default/layout/tab-close-on.gif
create mode 100644 src/main/webapp/gxt/images/default/layout/tab-close.gif
create mode 100644 src/main/webapp/gxt/images/default/menu/checked.gif
create mode 100644 src/main/webapp/gxt/images/default/menu/group-checked.gif
create mode 100644 src/main/webapp/gxt/images/default/menu/item-over.gif
create mode 100644 src/main/webapp/gxt/images/default/menu/menu-parent.gif
create mode 100644 src/main/webapp/gxt/images/default/menu/menu.gif
create mode 100644 src/main/webapp/gxt/images/default/menu/unchecked.gif
create mode 100644 src/main/webapp/gxt/images/default/panel/corners-sprite.gif
create mode 100644 src/main/webapp/gxt/images/default/panel/left-right.gif
create mode 100644 src/main/webapp/gxt/images/default/panel/light-hd.gif
create mode 100644 src/main/webapp/gxt/images/default/panel/tool-sprite-tpl.gif
create mode 100644 src/main/webapp/gxt/images/default/panel/tool-sprites.gif
create mode 100644 src/main/webapp/gxt/images/default/panel/tools-sprites-trans.gif
create mode 100644 src/main/webapp/gxt/images/default/panel/top-bottom.gif
create mode 100644 src/main/webapp/gxt/images/default/panel/top-bottom.png
create mode 100644 src/main/webapp/gxt/images/default/panel/white-corners-sprite.gif
create mode 100644 src/main/webapp/gxt/images/default/panel/white-left-right.gif
create mode 100644 src/main/webapp/gxt/images/default/panel/white-top-bottom.gif
create mode 100644 src/main/webapp/gxt/images/default/progress/progress-bg.gif
create mode 100644 src/main/webapp/gxt/images/default/qtip/bg.gif
create mode 100644 src/main/webapp/gxt/images/default/qtip/close.gif
create mode 100644 src/main/webapp/gxt/images/default/qtip/tip-anchor-sprite.gif
create mode 100644 src/main/webapp/gxt/images/default/qtip/tip-sprite.gif
create mode 100644 src/main/webapp/gxt/images/default/s.gif
create mode 100644 src/main/webapp/gxt/images/default/shadow-c.png
create mode 100644 src/main/webapp/gxt/images/default/shadow-lr.png
create mode 100644 src/main/webapp/gxt/images/default/shadow.png
create mode 100644 src/main/webapp/gxt/images/default/shared/blue-loading.gif
create mode 100644 src/main/webapp/gxt/images/default/shared/calendar.gif
create mode 100644 src/main/webapp/gxt/images/default/shared/clear.gif
create mode 100644 src/main/webapp/gxt/images/default/shared/glass-bg.gif
create mode 100644 src/main/webapp/gxt/images/default/shared/hd-sprite.gif
create mode 100644 src/main/webapp/gxt/images/default/shared/large-loading.gif
create mode 100644 src/main/webapp/gxt/images/default/shared/left-btn.gif
create mode 100644 src/main/webapp/gxt/images/default/shared/loading-balls.gif
create mode 100644 src/main/webapp/gxt/images/default/shared/right-btn.gif
create mode 100644 src/main/webapp/gxt/images/default/shared/warning.gif
create mode 100644 src/main/webapp/gxt/images/default/sizer/e-handle-dark.gif
create mode 100644 src/main/webapp/gxt/images/default/sizer/e-handle.gif
create mode 100644 src/main/webapp/gxt/images/default/sizer/ne-handle-dark.gif
create mode 100644 src/main/webapp/gxt/images/default/sizer/ne-handle.gif
create mode 100644 src/main/webapp/gxt/images/default/sizer/nw-handle-dark.gif
create mode 100644 src/main/webapp/gxt/images/default/sizer/nw-handle.gif
create mode 100644 src/main/webapp/gxt/images/default/sizer/s-handle-dark.gif
create mode 100644 src/main/webapp/gxt/images/default/sizer/s-handle.gif
create mode 100644 src/main/webapp/gxt/images/default/sizer/se-handle-dark.gif
create mode 100644 src/main/webapp/gxt/images/default/sizer/se-handle.gif
create mode 100644 src/main/webapp/gxt/images/default/sizer/square.gif
create mode 100644 src/main/webapp/gxt/images/default/sizer/sw-handle-dark.gif
create mode 100644 src/main/webapp/gxt/images/default/sizer/sw-handle.gif
create mode 100644 src/main/webapp/gxt/images/default/slider/slider-bg.png
create mode 100644 src/main/webapp/gxt/images/default/slider/slider-thumb.png
create mode 100644 src/main/webapp/gxt/images/default/slider/slider-v-bg.png
create mode 100644 src/main/webapp/gxt/images/default/slider/slider-v-thumb.png
create mode 100644 src/main/webapp/gxt/images/default/tabs/scroll-left.gif
create mode 100644 src/main/webapp/gxt/images/default/tabs/scroll-right.gif
create mode 100644 src/main/webapp/gxt/images/default/tabs/scroller-bg.gif
create mode 100644 src/main/webapp/gxt/images/default/tabs/tab-btm-inactive-left-bg.gif
create mode 100644 src/main/webapp/gxt/images/default/tabs/tab-btm-inactive-right-bg.gif
create mode 100644 src/main/webapp/gxt/images/default/tabs/tab-btm-left-bg.gif
create mode 100644 src/main/webapp/gxt/images/default/tabs/tab-btm-right-bg.gif
create mode 100644 src/main/webapp/gxt/images/default/tabs/tab-close.gif
create mode 100644 src/main/webapp/gxt/images/default/tabs/tab-strip-bg.gif
create mode 100644 src/main/webapp/gxt/images/default/tabs/tab-strip-bg.png
create mode 100644 src/main/webapp/gxt/images/default/tabs/tab-strip-btm-bg.gif
create mode 100644 src/main/webapp/gxt/images/default/tabs/tabs-sprite.gif
create mode 100644 src/main/webapp/gxt/images/default/toolbar/bg.gif
create mode 100644 src/main/webapp/gxt/images/default/toolbar/btn-arrow-light.gif
create mode 100644 src/main/webapp/gxt/images/default/toolbar/btn-arrow.gif
create mode 100644 src/main/webapp/gxt/images/default/toolbar/btn-over-bg.gif
create mode 100644 src/main/webapp/gxt/images/default/toolbar/gray-bg.gif
create mode 100644 src/main/webapp/gxt/images/default/toolbar/more.gif
create mode 100644 src/main/webapp/gxt/images/default/toolbar/tb-bg.gif
create mode 100644 src/main/webapp/gxt/images/default/toolbar/tb-btn-sprite.gif
create mode 100644 src/main/webapp/gxt/images/default/toolbar/tb-xl-btn-sprite.gif
create mode 100644 src/main/webapp/gxt/images/default/toolbar/tb-xl-sep.gif
create mode 100644 src/main/webapp/gxt/images/default/tree/arrows.gif
create mode 100644 src/main/webapp/gxt/images/default/tree/drop-add.gif
create mode 100644 src/main/webapp/gxt/images/default/tree/drop-between.gif
create mode 100644 src/main/webapp/gxt/images/default/tree/drop-no.gif
create mode 100644 src/main/webapp/gxt/images/default/tree/drop-over.gif
create mode 100644 src/main/webapp/gxt/images/default/tree/drop-under.gif
create mode 100644 src/main/webapp/gxt/images/default/tree/drop-yes.gif
create mode 100644 src/main/webapp/gxt/images/default/tree/elbow-end-minus-nl.gif
create mode 100644 src/main/webapp/gxt/images/default/tree/elbow-end-minus.gif
create mode 100644 src/main/webapp/gxt/images/default/tree/elbow-end-plus-nl.gif
create mode 100644 src/main/webapp/gxt/images/default/tree/elbow-end-plus.gif
create mode 100644 src/main/webapp/gxt/images/default/tree/elbow-end.gif
create mode 100644 src/main/webapp/gxt/images/default/tree/elbow-line.gif
create mode 100644 src/main/webapp/gxt/images/default/tree/elbow-minus-nl.gif
create mode 100644 src/main/webapp/gxt/images/default/tree/elbow-minus.gif
create mode 100644 src/main/webapp/gxt/images/default/tree/elbow-plus-nl.gif
create mode 100644 src/main/webapp/gxt/images/default/tree/elbow-plus.gif
create mode 100644 src/main/webapp/gxt/images/default/tree/elbow.gif
create mode 100644 src/main/webapp/gxt/images/default/tree/folder-open.gif
create mode 100644 src/main/webapp/gxt/images/default/tree/folder.gif
create mode 100644 src/main/webapp/gxt/images/default/tree/leaf.gif
create mode 100644 src/main/webapp/gxt/images/default/tree/loading.gif
create mode 100644 src/main/webapp/gxt/images/default/tree/s.gif
create mode 100644 src/main/webapp/gxt/images/default/window/icon-error.gif
create mode 100644 src/main/webapp/gxt/images/default/window/icon-info.gif
create mode 100644 src/main/webapp/gxt/images/default/window/icon-question.gif
create mode 100644 src/main/webapp/gxt/images/default/window/icon-warning.gif
create mode 100644 src/main/webapp/gxt/images/default/window/left-corners.png
create mode 100644 src/main/webapp/gxt/images/default/window/left-right.png
create mode 100644 src/main/webapp/gxt/images/default/window/right-corners.png
create mode 100644 src/main/webapp/gxt/images/default/window/top-bottom.png
create mode 100644 src/main/webapp/gxt/images/gray/button/btn-arrow.gif
create mode 100644 src/main/webapp/gxt/images/gray/button/btn-sprite.gif
create mode 100644 src/main/webapp/gxt/images/gray/button/btn.gif
create mode 100644 src/main/webapp/gxt/images/gray/button/group-cs.gif
create mode 100644 src/main/webapp/gxt/images/gray/button/group-lr.gif
create mode 100644 src/main/webapp/gxt/images/gray/button/group-tb.gif
create mode 100644 src/main/webapp/gxt/images/gray/form/spinner.gif
create mode 100644 src/main/webapp/gxt/images/gray/gradient-bg.gif
create mode 100644 src/main/webapp/gxt/images/gray/grid/col-move-bottom.gif
create mode 100644 src/main/webapp/gxt/images/gray/grid/col-move-top.gif
create mode 100644 src/main/webapp/gxt/images/gray/grid/grid-split.gif
create mode 100644 src/main/webapp/gxt/images/gray/grid/grid3-hd-btn.gif
create mode 100644 src/main/webapp/gxt/images/gray/grid/grid3-hrow-over.gif
create mode 100644 src/main/webapp/gxt/images/gray/grid/grid3-hrow-over2.gif
create mode 100644 src/main/webapp/gxt/images/gray/grid/grid3-hrow.gif
create mode 100644 src/main/webapp/gxt/images/gray/grid/grid3-hrow2.gif
create mode 100644 src/main/webapp/gxt/images/gray/grid/grid3-special-col-bg.gif
create mode 100644 src/main/webapp/gxt/images/gray/grid/grid3-special-col-bg2.gif
create mode 100644 src/main/webapp/gxt/images/gray/grid/grid3-special-col-sel-bg.gif
create mode 100644 src/main/webapp/gxt/images/gray/grid/group-collapse.gif
create mode 100644 src/main/webapp/gxt/images/gray/grid/group-expand-sprite.gif
create mode 100644 src/main/webapp/gxt/images/gray/grid/group-expand.gif
create mode 100644 src/main/webapp/gxt/images/gray/grid/page-first.gif
create mode 100644 src/main/webapp/gxt/images/gray/grid/page-last.gif
create mode 100644 src/main/webapp/gxt/images/gray/grid/page-next.gif
create mode 100644 src/main/webapp/gxt/images/gray/grid/page-prev.gif
create mode 100644 src/main/webapp/gxt/images/gray/grid/refresh.gif
create mode 100644 src/main/webapp/gxt/images/gray/grid/row-expand-sprite.gif
create mode 100644 src/main/webapp/gxt/images/gray/grid/sort_asc.gif
create mode 100644 src/main/webapp/gxt/images/gray/grid/sort_desc.gif
create mode 100644 src/main/webapp/gxt/images/gray/panel/corners-sprite.gif
create mode 100644 src/main/webapp/gxt/images/gray/panel/left-right.gif
create mode 100644 src/main/webapp/gxt/images/gray/panel/light-hd.gif
create mode 100644 src/main/webapp/gxt/images/gray/panel/tool-sprite-tpl.gif
create mode 100644 src/main/webapp/gxt/images/gray/panel/tool-sprites.gif
create mode 100644 src/main/webapp/gxt/images/gray/panel/tools-sprites-trans.gif
create mode 100644 src/main/webapp/gxt/images/gray/panel/top-bottom.gif
create mode 100644 src/main/webapp/gxt/images/gray/panel/top-bottom.png
create mode 100644 src/main/webapp/gxt/images/gray/panel/white-corners-sprite.gif
create mode 100644 src/main/webapp/gxt/images/gray/panel/white-left-right.gif
create mode 100644 src/main/webapp/gxt/images/gray/panel/white-top-bottom.gif
create mode 100644 src/main/webapp/gxt/images/gray/qtip/bg.gif
create mode 100644 src/main/webapp/gxt/images/gray/qtip/close.gif
create mode 100644 src/main/webapp/gxt/images/gray/qtip/tip-sprite.gif
create mode 100644 src/main/webapp/gxt/images/gray/s.gif
create mode 100644 src/main/webapp/gxt/images/gray/tabs/scroll-left.gif
create mode 100644 src/main/webapp/gxt/images/gray/tabs/scroll-right.gif
create mode 100644 src/main/webapp/gxt/images/gray/tabs/scroller-bg.gif
create mode 100644 src/main/webapp/gxt/images/gray/tabs/tab-btm-inactive-left-bg.gif
create mode 100644 src/main/webapp/gxt/images/gray/tabs/tab-btm-inactive-right-bg.gif
create mode 100644 src/main/webapp/gxt/images/gray/tabs/tab-btm-left-bg.gif
create mode 100644 src/main/webapp/gxt/images/gray/tabs/tab-btm-right-bg.gif
create mode 100644 src/main/webapp/gxt/images/gray/tabs/tab-close.gif
create mode 100644 src/main/webapp/gxt/images/gray/tabs/tab-strip-bg.gif
create mode 100644 src/main/webapp/gxt/images/gray/tabs/tab-strip-bg.png
create mode 100644 src/main/webapp/gxt/images/gray/tabs/tab-strip-btm-bg.gif
create mode 100644 src/main/webapp/gxt/images/gray/tabs/tabs-sprite.gif
create mode 100644 src/main/webapp/gxt/images/gray/toolbar/bg.gif
create mode 100644 src/main/webapp/gxt/images/gray/toolbar/btn-arrow-light.gif
create mode 100644 src/main/webapp/gxt/images/gray/toolbar/btn-arrow.gif
create mode 100644 src/main/webapp/gxt/images/gray/toolbar/btn-over-bg.gif
create mode 100644 src/main/webapp/gxt/images/gray/toolbar/gray-bg.gif
create mode 100644 src/main/webapp/gxt/images/gray/toolbar/tb-bg.gif
create mode 100644 src/main/webapp/gxt/images/gray/toolbar/tb-btn-sprite.gif
create mode 100644 src/main/webapp/gxt/images/gray/window/icon-error.gif
create mode 100644 src/main/webapp/gxt/images/gray/window/icon-info.gif
create mode 100644 src/main/webapp/gxt/images/gray/window/icon-question.gif
create mode 100644 src/main/webapp/gxt/images/gray/window/icon-warning.gif
create mode 100644 src/main/webapp/gxt/images/gray/window/left-corners.png
create mode 100644 src/main/webapp/gxt/images/gray/window/left-corners.pspimage
create mode 100644 src/main/webapp/gxt/images/gray/window/left-right.png
create mode 100644 src/main/webapp/gxt/images/gray/window/right-corners.png
create mode 100644 src/main/webapp/gxt/images/gray/window/top-bottom.png
create mode 100644 src/main/webapp/gxt/images/gxt/dd/insert-bg.gif
create mode 100644 src/main/webapp/gxt/images/gxt/grid/row-editor-bg.gif
create mode 100644 src/main/webapp/gxt/images/gxt/grid/row-editor-btns.gif
create mode 100644 src/main/webapp/gxt/images/gxt/icons/bottom2.gif
create mode 100644 src/main/webapp/gxt/images/gxt/icons/columns.gif
create mode 100644 src/main/webapp/gxt/images/gxt/icons/done.gif
create mode 100644 src/main/webapp/gxt/images/gxt/icons/doubleleft2.gif
create mode 100644 src/main/webapp/gxt/images/gxt/icons/doubleright2.gif
create mode 100644 src/main/webapp/gxt/images/gxt/icons/down2.gif
create mode 100644 src/main/webapp/gxt/images/gxt/icons/folder-closed.gif
create mode 100644 src/main/webapp/gxt/images/gxt/icons/folder-closed.png
create mode 100644 src/main/webapp/gxt/images/gxt/icons/folder.gif
create mode 100644 src/main/webapp/gxt/images/gxt/icons/folder.png
create mode 100644 src/main/webapp/gxt/images/gxt/icons/grid-loading.gif
create mode 100644 src/main/webapp/gxt/images/gxt/icons/hmenu-asc.gif
create mode 100644 src/main/webapp/gxt/images/gxt/icons/hmenu-desc.gif
create mode 100644 src/main/webapp/gxt/images/gxt/icons/left2.gif
create mode 100644 src/main/webapp/gxt/images/gxt/icons/loading.gif
create mode 100644 src/main/webapp/gxt/images/gxt/icons/nowait.gif
create mode 100644 src/main/webapp/gxt/images/gxt/icons/page-first-disabled.gif
create mode 100644 src/main/webapp/gxt/images/gxt/icons/page-first.gif
create mode 100644 src/main/webapp/gxt/images/gxt/icons/page-last-disabled.gif
create mode 100644 src/main/webapp/gxt/images/gxt/icons/page-last.gif
create mode 100644 src/main/webapp/gxt/images/gxt/icons/page-next-disabled.gif
create mode 100644 src/main/webapp/gxt/images/gxt/icons/page-next.gif
create mode 100644 src/main/webapp/gxt/images/gxt/icons/page-prev-disabled.gif
create mode 100644 src/main/webapp/gxt/images/gxt/icons/page-prev.gif
create mode 100644 src/main/webapp/gxt/images/gxt/icons/paging.gif
create mode 100644 src/main/webapp/gxt/images/gxt/icons/right2.gif
create mode 100644 src/main/webapp/gxt/images/gxt/icons/tabs.gif
create mode 100644 src/main/webapp/gxt/images/gxt/icons/top2.gif
create mode 100644 src/main/webapp/gxt/images/gxt/icons/up2.gif
create mode 100644 src/main/webapp/gxt/images/gxt/icons/wait.gif
create mode 100644 src/main/webapp/gxt/images/gxt/info/corners-sprite.gif
create mode 100644 src/main/webapp/gxt/images/gxt/info/top-bottom.gif
create mode 100644 src/main/webapp/gxt/images/gxt/menu/disabledcheck.gif
create mode 100644 src/main/webapp/gxt/images/gxt/shared/clear.gif
create mode 100644 src/main/webapp/gxt/images/gxt/shared/large-loading.gif
create mode 100644 src/main/webapp/gxt/images/gxt/shared/select-18-bg.gif
create mode 100644 src/main/webapp/gxt/images/gxt/shared/select-19-bg-gray.gif
create mode 100644 src/main/webapp/gxt/images/gxt/shared/select-19-bg.gif
create mode 100644 src/main/webapp/gxt/images/gxt/shared/select-bg.gif
create mode 100644 src/main/webapp/gxt/images/gxt/shared/select-light.gif
create mode 100644 src/main/webapp/gxt/images/gxt/table/row-over.gif
create mode 100644 src/main/webapp/gxt/images/gxt/table/vs-column-bg.gif
create mode 100644 src/main/webapp/gxt/images/gxt/table/vsort-asc.gif
create mode 100644 src/main/webapp/gxt/images/gxt/table/vsort-desc.gif
create mode 100644 src/main/webapp/gxt/images/gxt/tree/checked.gif
create mode 100644 src/main/webapp/gxt/images/gxt/tree/joint-close.gif
create mode 100644 src/main/webapp/gxt/images/gxt/tree/joint-open.gif
create mode 100644 src/main/webapp/gxt/images/gxt/tree/notchecked.gif
create mode 100644 src/main/webapp/gxt/images/gxt/tree/tree-table-special-col-sel.gif
create mode 100644 src/main/webapp/gxt/images/gxt/tree/tree-table-special-col.gif
create mode 100644 src/main/webapp/gxt/images/gxt/tree/vnode.gif
create mode 100644 src/main/webapp/gxt/images/gxt/tree/vnode_transparent.gif
create mode 100644 src/main/webapp/gxt/themes/access/css/xtheme-access.css
create mode 100644 src/main/webapp/gxt/themes/access/images/box/corners-blue.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/box/corners.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/box/l-blue.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/box/l.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/box/r-blue.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/box/r.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/box/tb-blue.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/box/tb.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/button/arrow.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/button/btn.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/button/group-cs.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/button/group-lr.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/button/group-tb.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/button/s-arrow-b-noline.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/button/s-arrow-b.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/button/s-arrow-bo.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/button/s-arrow-noline.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/button/s-arrow-o.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/button/s-arrow.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/box/corners-blue.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/box/corners.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/box/l-blue.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/box/l.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/box/r-blue.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/box/r.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/box/tb-blue.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/box/tb.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/button/arrow.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/button/btn-arrow.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/button/btn-sprite.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/button/btn.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/button/group-cs.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/button/group-lr.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/button/group-tb.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/button/s-arrow-b-noline.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/button/s-arrow-b.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/button/s-arrow-bo.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/button/s-arrow-noline.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/button/s-arrow-o.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/button/s-arrow.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/dd/drop-add.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/dd/drop-no.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/dd/drop-yes.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/editor/tb-bold.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/editor/tb-font-color.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/editor/tb-font-decrease.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/editor/tb-font-highlight.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/editor/tb-font-increase.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/editor/tb-italic.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/editor/tb-justify-center.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/editor/tb-justify-left.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/editor/tb-justify-right.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/editor/tb-link.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/editor/tb-ol.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/editor/tb-source.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/editor/tb-sprite.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/editor/tb-ul.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/editor/tb-underline.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/form/checkbox.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/form/clear-trigger.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/form/date-trigger.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/form/error-tip-corners.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/form/exclamation.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/form/radio.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/form/search-trigger.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/form/spinner.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/form/text-bg.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/form/trigger-tpl.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/form/trigger.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/gradient-bg.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/grid/arrow-left-white.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/grid/arrow-right-white.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/grid/col-move-bottom.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/grid/col-move-top.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/grid/columns.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/grid/dirty.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/grid/done.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/grid/drop-no.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/grid/drop-yes.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/grid/footer-bg.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/grid/grid-blue-hd.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/grid/grid-blue-split.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/grid/grid-hrow.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/grid/grid-loading.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/grid/grid-split.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/grid/grid-vista-hd.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/grid/grid3-hd-btn.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/grid/grid3-hrow-group.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/grid/grid3-hrow-over.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/grid/grid3-hrow.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/grid/grid3-special-col-bg.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/grid/grid3-special-col-sel-bg.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/grid/group-by.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/grid/group-expand-sprite.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/grid/hd-pop.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/grid/hmenu-asc.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/grid/hmenu-desc.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/grid/hmenu-lock.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/grid/hmenu-lock.png
create mode 100644 src/main/webapp/gxt/themes/access/images/default/grid/hmenu-unlock.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/grid/hmenu-unlock.png
create mode 100644 src/main/webapp/gxt/themes/access/images/default/grid/invalid_line.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/grid/loading.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/grid/mso-hd.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/grid/nowait.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/grid/page-first-disabled.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/grid/page-first.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/grid/page-last-disabled.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/grid/page-last.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/grid/page-next-disabled.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/grid/page-next.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/grid/page-prev-disabled.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/grid/page-prev.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/grid/pick-button.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/grid/refresh.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/grid/refresh.png
create mode 100644 src/main/webapp/gxt/themes/access/images/default/grid/row-check-sprite.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/grid/row-expand-sprite.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/grid/row-over.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/grid/row-sel.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/grid/sort-hd.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/grid/sort_asc.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/grid/sort_desc.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/grid/wait.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/layout/collapse.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/layout/expand.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/layout/gradient-bg.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/layout/mini-bottom.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/layout/mini-left.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/layout/mini-right.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/layout/mini-top.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/layout/ns-collapse.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/layout/ns-expand.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/layout/panel-close.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/layout/panel-title-bg.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/layout/panel-title-light-bg.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/layout/stick.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/layout/stuck.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/layout/tab-close-on.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/layout/tab-close.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/menu/checked.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/menu/group-checked.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/menu/item-over.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/menu/menu-parent.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/menu/menu.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/menu/unchecked.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/panel/corners-sprite.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/panel/left-right.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/panel/light-hd.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/panel/tool-sprite-tpl.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/panel/tool-sprites.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/panel/tools-sprites-trans.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/panel/top-bottom.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/panel/top-bottom.png
create mode 100644 src/main/webapp/gxt/themes/access/images/default/panel/white-corners-sprite.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/panel/white-left-right.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/panel/white-top-bottom.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/progress/progress-bg.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/qtip/bg.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/qtip/close.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/qtip/tip-anchor-sprite.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/qtip/tip-sprite.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/s.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/shadow-c.png
create mode 100644 src/main/webapp/gxt/themes/access/images/default/shadow-lr.png
create mode 100644 src/main/webapp/gxt/themes/access/images/default/shadow.png
create mode 100644 src/main/webapp/gxt/themes/access/images/default/shared/blue-loading.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/shared/calendar.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/shared/clear.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/shared/glass-bg.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/shared/hd-sprite.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/shared/large-loading.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/shared/left-btn.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/shared/loading-balls.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/shared/right-btn.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/shared/warning.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/sizer/e-handle-dark.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/sizer/e-handle.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/sizer/ne-handle-dark.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/sizer/ne-handle.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/sizer/nw-handle-dark.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/sizer/nw-handle.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/sizer/s-handle-dark.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/sizer/s-handle.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/sizer/se-handle-dark.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/sizer/se-handle.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/sizer/square.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/sizer/sw-handle-dark.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/sizer/sw-handle.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/slider/slider-bg.png
create mode 100644 src/main/webapp/gxt/themes/access/images/default/slider/slider-thumb.png
create mode 100644 src/main/webapp/gxt/themes/access/images/default/slider/slider-v-bg.png
create mode 100644 src/main/webapp/gxt/themes/access/images/default/slider/slider-v-thumb.png
create mode 100644 src/main/webapp/gxt/themes/access/images/default/tabs/scroll-left.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/tabs/scroll-right.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/tabs/scroller-bg.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/tabs/tab-btm-inactive-left-bg.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/tabs/tab-btm-inactive-right-bg.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/tabs/tab-btm-left-bg.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/tabs/tab-btm-right-bg.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/tabs/tab-close.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/tabs/tab-strip-bg.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/tabs/tab-strip-bg.png
create mode 100644 src/main/webapp/gxt/themes/access/images/default/tabs/tab-strip-btm-bg.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/tabs/tabs-sprite.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/toolbar/bg.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/toolbar/btn-arrow-light.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/toolbar/btn-arrow.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/toolbar/btn-over-bg.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/toolbar/gray-bg.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/toolbar/more.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/toolbar/tb-bg.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/toolbar/tb-btn-sprite.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/toolbar/tb-xl-btn-sprite.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/toolbar/tb-xl-sep.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/tree/arrows.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/tree/drop-add.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/tree/drop-between.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/tree/drop-no.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/tree/drop-over.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/tree/drop-under.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/tree/drop-yes.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/tree/elbow-end-minus-nl.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/tree/elbow-end-minus.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/tree/elbow-end-plus-nl.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/tree/elbow-end-plus.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/tree/elbow-end.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/tree/elbow-line.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/tree/elbow-minus-nl.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/tree/elbow-minus.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/tree/elbow-plus-nl.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/tree/elbow-plus.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/tree/elbow.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/tree/folder-open.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/tree/folder.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/tree/leaf.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/tree/loading.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/tree/s.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/window/icon-error.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/window/icon-info.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/window/icon-question.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/window/icon-warning.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/default/window/left-corners.png
create mode 100644 src/main/webapp/gxt/themes/access/images/default/window/left-right.png
create mode 100644 src/main/webapp/gxt/themes/access/images/default/window/right-corners.png
create mode 100644 src/main/webapp/gxt/themes/access/images/default/window/top-bottom.png
create mode 100644 src/main/webapp/gxt/themes/access/images/editor/tb-source.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/editor/tb-sprite.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/form/checkbox.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/form/clear-trigger.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/form/date-trigger.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/form/error-tip-corners.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/form/exclamation.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/form/radio.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/form/search-trigger.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/form/spinner.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/form/text-bg.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/form/trigger-single.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/form/trigger-tpl.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/form/trigger.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/grid/arrow-left-white.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/grid/arrow-right-white.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/grid/col-move-bottom.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/grid/col-move-top.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/grid/columns.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/grid/dirty.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/grid/done.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/grid/drop-no.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/grid/drop-yes.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/grid/footer-bg.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/grid/grid-blue-hd.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/grid/grid-blue-split.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/grid/grid-hrow.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/grid/grid-loading.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/grid/grid-split.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/grid/grid-vista-hd.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/grid/grid3-hd-btn-contrast.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/grid/grid3-hd-btn.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/grid/grid3-hrow-over.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/grid/grid3-hrow.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/grid/grid3-special-col-bg.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/grid/grid3-special-col-sel-bg.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/grid/group-by.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/grid/group-collapse.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/grid/group-expand-sprite.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/grid/group-expand.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/grid/hd-pop.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/grid/hmenu-asc.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/grid/hmenu-desc.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/grid/hmenu-lock.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/grid/hmenu-lock.png
create mode 100644 src/main/webapp/gxt/themes/access/images/grid/hmenu-unlock.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/grid/hmenu-unlock.png
create mode 100644 src/main/webapp/gxt/themes/access/images/grid/invalid_line.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/grid/loading.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/grid/mso-hd.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/grid/nowait.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/grid/page-first-disabled.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/grid/page-first.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/grid/page-last-disabled.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/grid/page-last.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/grid/page-next-disabled.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/grid/page-next.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/grid/page-prev-disabled.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/grid/page-prev.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/grid/pick-button.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/grid/refresh.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/grid/row-check-sel.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/grid/row-check-sprite.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/grid/row-check.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/grid/row-expand-sprite.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/grid/row-over.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/grid/row-sel.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/grid/sort-hd.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/grid/sort_asc.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/grid/sort_desc.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/grid/wait.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/icons/bottom2.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/icons/doubleleft2.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/icons/doubleright2.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/icons/down2.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/icons/left2.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/icons/right2.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/icons/top2.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/icons/up2.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/layout/mini-bottom.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/layout/mini-top.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/menu/checked.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/menu/group-checked.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/menu/item-over.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/menu/menu-parent.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/menu/menu.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/menu/unchecked.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/panel/corners-sprite.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/panel/left-right.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/panel/light-hd.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/panel/tool-close.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/panel/tool-collapse.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/panel/tool-expand.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/panel/tool-gear.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/panel/tool-maximize.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/panel/tool-minimize.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/panel/tool-pin.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/panel/tool-sprite-tpl.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/panel/tool-sprites.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/panel/tools-sprites-trans.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/panel/top-bottom.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/panel/white-corners-sprite.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/panel/white-left-right.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/panel/white-top-bottom.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/progress/progress-bg.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/qtip/close.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/qtip/tip-anchor-sprite.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/qtip/tip-sprite.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/shared/glass-bg.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/shared/hd-sprite.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/shared/left-btn.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/shared/right-btn.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/sizer/e-handle-dark.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/sizer/e-handle.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/sizer/ne-handle-dark.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/sizer/ne-handle.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/sizer/nw-handle-dark.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/sizer/nw-handle.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/sizer/s-handle-dark.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/sizer/s-handle.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/sizer/se-handle-dark.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/sizer/se-handle.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/sizer/square.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/sizer/sw-handle-dark.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/sizer/sw-handle.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/slider/slider-bg.png
create mode 100644 src/main/webapp/gxt/themes/access/images/slider/slider-thumb-single.png
create mode 100644 src/main/webapp/gxt/themes/access/images/slider/slider-thumb.png
create mode 100644 src/main/webapp/gxt/themes/access/images/slider/slider-v-bg.png
create mode 100644 src/main/webapp/gxt/themes/access/images/slider/slider-v-thumb.png
create mode 100644 src/main/webapp/gxt/themes/access/images/tabs/scroll-left.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/tabs/scroll-right.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/tabs/tab-btm-inactive-left-bg.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/tabs/tab-btm-inactive-right-bg.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/tabs/tab-btm-left-bg.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/tabs/tab-btm-right-bg.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/tabs/tab-close.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/tabs/tab-strip-bg.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/tabs/tab-strip-btm-bg.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/tabs/tabs-sprite.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/toolbar/bg.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/toolbar/btn-arrow-light.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/toolbar/btn-arrow.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/toolbar/btn-over-bg.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/toolbar/gray-bg.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/toolbar/more.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/toolbar/s-arrow-bo.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/toolbar/tb-btn-sprite.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/toolbar/tb-xl-btn-sprite.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/toolbar/tb-xl-sep.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/tree/arrows.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/tree/drop-add.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/tree/drop-between.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/tree/drop-no.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/tree/drop-over.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/tree/drop-under.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/tree/drop-yes.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/tree/elbow-end-minus-nl.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/tree/elbow-end-minus.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/tree/elbow-end-plus-nl.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/tree/elbow-end-plus.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/tree/elbow-end.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/tree/elbow-line.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/tree/elbow-minus-nl.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/tree/elbow-minus.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/tree/elbow-plus-nl.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/tree/elbow-plus.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/tree/elbow.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/tree/folder-open.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/tree/folder.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/tree/leaf.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/tree/loading.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/tree/s.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/tree/tree-collapsed.png
create mode 100644 src/main/webapp/gxt/themes/access/images/tree/tree-expanded.png
create mode 100644 src/main/webapp/gxt/themes/access/images/window/icon-error.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/window/icon-info.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/window/icon-question.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/window/icon-warning.gif
create mode 100644 src/main/webapp/gxt/themes/access/images/window/left-corners.png
create mode 100644 src/main/webapp/gxt/themes/access/images/window/left-right.png
create mode 100644 src/main/webapp/gxt/themes/access/images/window/right-corners.png
create mode 100644 src/main/webapp/gxt/themes/access/images/window/top-bottom.png
create mode 100644 src/main/webapp/gxt/themes/slate/css/xtheme-slate.css
create mode 100644 src/main/webapp/gxt/themes/slate/images/slate/button/arrow.gif
create mode 100644 src/main/webapp/gxt/themes/slate/images/slate/button/btn-arrow.gif
create mode 100644 src/main/webapp/gxt/themes/slate/images/slate/button/btn-sprite.gif
create mode 100644 src/main/webapp/gxt/themes/slate/images/slate/button/btn.gif
create mode 100644 src/main/webapp/gxt/themes/slate/images/slate/button/group-cs.gif
create mode 100644 src/main/webapp/gxt/themes/slate/images/slate/button/group-lr.gif
create mode 100644 src/main/webapp/gxt/themes/slate/images/slate/button/group-tb.gif
create mode 100644 src/main/webapp/gxt/themes/slate/images/slate/button/s-arrow-b-noline.gif
create mode 100644 src/main/webapp/gxt/themes/slate/images/slate/button/s-arrow-b.gif
create mode 100644 src/main/webapp/gxt/themes/slate/images/slate/button/s-arrow-bo.gif
create mode 100644 src/main/webapp/gxt/themes/slate/images/slate/button/s-arrow-noline.gif
create mode 100644 src/main/webapp/gxt/themes/slate/images/slate/button/s-arrow-o.gif
create mode 100644 src/main/webapp/gxt/themes/slate/images/slate/button/s-arrow.gif
create mode 100644 src/main/webapp/gxt/themes/slate/images/slate/editor/tb-sprite.gif
create mode 100644 src/main/webapp/gxt/themes/slate/images/slate/form/checkbox.gif
create mode 100644 src/main/webapp/gxt/themes/slate/images/slate/form/clear-trigger.gif
create mode 100644 src/main/webapp/gxt/themes/slate/images/slate/form/date-trigger.gif
create mode 100644 src/main/webapp/gxt/themes/slate/images/slate/form/error-tip-corners.gif
create mode 100644 src/main/webapp/gxt/themes/slate/images/slate/form/radio.gif
create mode 100644 src/main/webapp/gxt/themes/slate/images/slate/form/search-trigger.gif
create mode 100644 src/main/webapp/gxt/themes/slate/images/slate/form/spinner.gif
create mode 100644 src/main/webapp/gxt/themes/slate/images/slate/form/trigger-tpl.gif
create mode 100644 src/main/webapp/gxt/themes/slate/images/slate/form/trigger.gif
create mode 100644 src/main/webapp/gxt/themes/slate/images/slate/gradient-bg.gif
create mode 100644 src/main/webapp/gxt/themes/slate/images/slate/grid/arrow-left-white.gif
create mode 100644 src/main/webapp/gxt/themes/slate/images/slate/grid/arrow-right-white.gif
create mode 100644 src/main/webapp/gxt/themes/slate/images/slate/grid/col-move-bottom.gif
create mode 100644 src/main/webapp/gxt/themes/slate/images/slate/grid/col-move-top.gif
create mode 100644 src/main/webapp/gxt/themes/slate/images/slate/grid/footer-bg.gif
create mode 100644 src/main/webapp/gxt/themes/slate/images/slate/grid/grid-blue-hd.gif
create mode 100644 src/main/webapp/gxt/themes/slate/images/slate/grid/grid-blue-split.gif
create mode 100644 src/main/webapp/gxt/themes/slate/images/slate/grid/grid-hrow.gif
create mode 100644 src/main/webapp/gxt/themes/slate/images/slate/grid/grid-split.gif
create mode 100644 src/main/webapp/gxt/themes/slate/images/slate/grid/grid-vista-hd.gif
create mode 100644 src/main/webapp/gxt/themes/slate/images/slate/grid/grid3-hd-btn.gif
create mode 100644 src/main/webapp/gxt/themes/slate/images/slate/grid/grid3-hrow-over.gif
create mode 100644 src/main/webapp/gxt/themes/slate/images/slate/grid/grid3-hrow.gif
create mode 100644 src/main/webapp/gxt/themes/slate/images/slate/grid/grid3-special-col-bg.gif
create mode 100644 src/main/webapp/gxt/themes/slate/images/slate/grid/grid3-special-col-sel-bg.gif
create mode 100644 src/main/webapp/gxt/themes/slate/images/slate/grid/group-expand-sprite.gif
create mode 100644 src/main/webapp/gxt/themes/slate/images/slate/grid/mso-hd.gif
create mode 100644 src/main/webapp/gxt/themes/slate/images/slate/grid/page-first-disabled.gif
create mode 100644 src/main/webapp/gxt/themes/slate/images/slate/grid/page-first.gif
create mode 100644 src/main/webapp/gxt/themes/slate/images/slate/grid/page-last-disabled.gif
create mode 100644 src/main/webapp/gxt/themes/slate/images/slate/grid/page-last.gif
create mode 100644 src/main/webapp/gxt/themes/slate/images/slate/grid/page-next-disabled.gif
create mode 100644 src/main/webapp/gxt/themes/slate/images/slate/grid/page-next.gif
create mode 100644 src/main/webapp/gxt/themes/slate/images/slate/grid/page-prev-disabled.gif
create mode 100644 src/main/webapp/gxt/themes/slate/images/slate/grid/page-prev.gif
create mode 100644 src/main/webapp/gxt/themes/slate/images/slate/grid/refresh.gif
create mode 100644 src/main/webapp/gxt/themes/slate/images/slate/grid/row-over.gif
create mode 100644 src/main/webapp/gxt/themes/slate/images/slate/grid/row-sel.gif
create mode 100644 src/main/webapp/gxt/themes/slate/images/slate/grid/sort_asc.gif
create mode 100644 src/main/webapp/gxt/themes/slate/images/slate/grid/sort_desc.gif
create mode 100644 src/main/webapp/gxt/themes/slate/images/slate/menu/checked.gif
create mode 100644 src/main/webapp/gxt/themes/slate/images/slate/menu/group-checked.gif
create mode 100644 src/main/webapp/gxt/themes/slate/images/slate/menu/item-over - Copy.gif
create mode 100644 src/main/webapp/gxt/themes/slate/images/slate/menu/item-over.gif
create mode 100644 src/main/webapp/gxt/themes/slate/images/slate/menu/menu-parent.gif
create mode 100644 src/main/webapp/gxt/themes/slate/images/slate/menu/menu.gif
create mode 100644 src/main/webapp/gxt/themes/slate/images/slate/menu/unchecked.gif
create mode 100644 src/main/webapp/gxt/themes/slate/images/slate/panel/corners-sprite.gif
create mode 100644 src/main/webapp/gxt/themes/slate/images/slate/panel/left-right.gif
create mode 100644 src/main/webapp/gxt/themes/slate/images/slate/panel/light-hd.gif
create mode 100644 src/main/webapp/gxt/themes/slate/images/slate/panel/tool-sprite-tpl.gif
create mode 100644 src/main/webapp/gxt/themes/slate/images/slate/panel/tool-sprites.gif
create mode 100644 src/main/webapp/gxt/themes/slate/images/slate/panel/tools-sprites-trans.gif
create mode 100644 src/main/webapp/gxt/themes/slate/images/slate/panel/top-bottom.gif
create mode 100644 src/main/webapp/gxt/themes/slate/images/slate/panel/top-bottom.png
create mode 100644 src/main/webapp/gxt/themes/slate/images/slate/panel/white-corners-sprite.gif
create mode 100644 src/main/webapp/gxt/themes/slate/images/slate/panel/white-left-right.gif
create mode 100644 src/main/webapp/gxt/themes/slate/images/slate/panel/white-top-bottom.gif
create mode 100644 src/main/webapp/gxt/themes/slate/images/slate/progress/progress-bg.gif
create mode 100644 src/main/webapp/gxt/themes/slate/images/slate/qtip/bg.gif
create mode 100644 src/main/webapp/gxt/themes/slate/images/slate/qtip/close.gif
create mode 100644 src/main/webapp/gxt/themes/slate/images/slate/qtip/tip-sprite.gif
create mode 100644 src/main/webapp/gxt/themes/slate/images/slate/s.gif
create mode 100644 src/main/webapp/gxt/themes/slate/images/slate/shared/glass-bg.gif
create mode 100644 src/main/webapp/gxt/themes/slate/images/slate/shared/hd-sprite.gif
create mode 100644 src/main/webapp/gxt/themes/slate/images/slate/shared/left-btn.gif
create mode 100644 src/main/webapp/gxt/themes/slate/images/slate/shared/right-btn.gif
create mode 100644 src/main/webapp/gxt/themes/slate/images/slate/sizer/e-handle-dark.gif
create mode 100644 src/main/webapp/gxt/themes/slate/images/slate/sizer/e-handle.gif
create mode 100644 src/main/webapp/gxt/themes/slate/images/slate/sizer/ne-handle-dark.gif
create mode 100644 src/main/webapp/gxt/themes/slate/images/slate/sizer/ne-handle.gif
create mode 100644 src/main/webapp/gxt/themes/slate/images/slate/sizer/nw-handle-dark.gif
create mode 100644 src/main/webapp/gxt/themes/slate/images/slate/sizer/nw-handle.gif
create mode 100644 src/main/webapp/gxt/themes/slate/images/slate/sizer/s-handle-dark.gif
create mode 100644 src/main/webapp/gxt/themes/slate/images/slate/sizer/s-handle.gif
create mode 100644 src/main/webapp/gxt/themes/slate/images/slate/sizer/se-handle-dark.gif
create mode 100644 src/main/webapp/gxt/themes/slate/images/slate/sizer/se-handle.gif
create mode 100644 src/main/webapp/gxt/themes/slate/images/slate/sizer/square.gif
create mode 100644 src/main/webapp/gxt/themes/slate/images/slate/sizer/sw-handle-dark.gif
create mode 100644 src/main/webapp/gxt/themes/slate/images/slate/sizer/sw-handle.gif
create mode 100644 src/main/webapp/gxt/themes/slate/images/slate/slider/slider-bg.png
create mode 100644 src/main/webapp/gxt/themes/slate/images/slate/slider/slider-thumb.png
create mode 100644 src/main/webapp/gxt/themes/slate/images/slate/slider/slider-v-bg.png
create mode 100644 src/main/webapp/gxt/themes/slate/images/slate/slider/slider-v-thumb.png
create mode 100644 src/main/webapp/gxt/themes/slate/images/slate/tabs/scroll-left.gif
create mode 100644 src/main/webapp/gxt/themes/slate/images/slate/tabs/scroll-right.gif
create mode 100644 src/main/webapp/gxt/themes/slate/images/slate/tabs/scroller-bg.gif
create mode 100644 src/main/webapp/gxt/themes/slate/images/slate/tabs/tab-btm-inactive-left-bg.gif
create mode 100644 src/main/webapp/gxt/themes/slate/images/slate/tabs/tab-btm-inactive-right-bg.gif
create mode 100644 src/main/webapp/gxt/themes/slate/images/slate/tabs/tab-btm-left-bg.gif
create mode 100644 src/main/webapp/gxt/themes/slate/images/slate/tabs/tab-btm-right-bg.gif
create mode 100644 src/main/webapp/gxt/themes/slate/images/slate/tabs/tab-close.gif
create mode 100644 src/main/webapp/gxt/themes/slate/images/slate/tabs/tab-strip-bg.gif
create mode 100644 src/main/webapp/gxt/themes/slate/images/slate/tabs/tab-strip-bg.png
create mode 100644 src/main/webapp/gxt/themes/slate/images/slate/tabs/tab-strip-btm-bg.gif
create mode 100644 src/main/webapp/gxt/themes/slate/images/slate/tabs/tabs-sprite.gif
create mode 100644 src/main/webapp/gxt/themes/slate/images/slate/toolbar/bg.gif
create mode 100644 src/main/webapp/gxt/themes/slate/images/slate/toolbar/btn-arrow-light.gif
create mode 100644 src/main/webapp/gxt/themes/slate/images/slate/toolbar/btn-arrow.gif
create mode 100644 src/main/webapp/gxt/themes/slate/images/slate/toolbar/btn-over-bg.gif
create mode 100644 src/main/webapp/gxt/themes/slate/images/slate/toolbar/gray-bg.gif
create mode 100644 src/main/webapp/gxt/themes/slate/images/slate/toolbar/sep.gif
create mode 100644 src/main/webapp/gxt/themes/slate/images/slate/toolbar/tb-bg.gif
create mode 100644 src/main/webapp/gxt/themes/slate/images/slate/toolbar/tb-btn-sprite.gif
create mode 100644 src/main/webapp/gxt/themes/slate/images/slate/tree/arrows.gif
create mode 100644 src/main/webapp/gxt/themes/slate/images/slate/window/icon-error.gif
create mode 100644 src/main/webapp/gxt/themes/slate/images/slate/window/icon-info.gif
create mode 100644 src/main/webapp/gxt/themes/slate/images/slate/window/icon-question.gif
create mode 100644 src/main/webapp/gxt/themes/slate/images/slate/window/icon-warning.gif
create mode 100644 src/main/webapp/gxt/themes/slate/images/slate/window/left-corners.png
create mode 100644 src/main/webapp/gxt/themes/slate/images/slate/window/left-right.png
create mode 100644 src/main/webapp/gxt/themes/slate/images/slate/window/right-corners.png
create mode 100644 src/main/webapp/gxt/themes/slate/images/slate/window/top-bottom.png
create mode 100644 src/main/webapp/images/cell-blue.jpg
create mode 100644 src/main/webapp/images/cell-blue2.jpg
create mode 100644 src/main/webapp/images/cell-grey.jpg
create mode 100644 src/main/webapp/images/cell-grey2.jpg
create mode 100644 src/test/java/org/gcube/portlets/user/speciesdiscovery/client/GwtTestSpeciesDiscovery.java
create mode 100644 src/test/resources/org/gcube/portlets/user/speciesdiscovery/SpeciesDiscoveryJUnit.gwt.xml
diff --git a/.classpath b/.classpath
new file mode 100644
index 0000000..0b14b16
--- /dev/null
+++ b/.classpath
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/.project b/.project
new file mode 100644
index 0000000..53cd0a3
--- /dev/null
+++ b/.project
@@ -0,0 +1,59 @@
+
+
+ speciesdiscovery
+ speciesdiscovery project
+
+
+
+
+ org.eclipse.wst.jsdt.core.javascriptValidator
+
+
+
+
+ org.eclipse.wst.common.project.facet.core.builder
+
+
+
+
+ org.eclipse.jdt.core.javabuilder
+
+
+
+
+ org.eclipse.wst.validation.validationbuilder
+
+
+
+
+ org.maven.ide.eclipse.maven2Builder
+
+
+
+
+ com.google.gdt.eclipse.core.webAppProjectValidator
+
+
+
+
+ com.google.gwt.eclipse.core.gwtProjectValidator
+
+
+
+
+ org.eclipse.m2e.core.maven2Builder
+
+
+
+
+
+ org.eclipse.m2e.core.maven2Nature
+ org.eclipse.jem.workbench.JavaEMFNature
+ org.eclipse.wst.common.modulecore.ModuleCoreNature
+ org.maven.ide.eclipse.maven2Nature
+ org.eclipse.jdt.core.javanature
+ org.eclipse.wst.common.project.facet.core.nature
+ org.eclipse.wst.jsdt.core.jsNature
+ com.google.gwt.eclipse.core.gwtNature
+
+
diff --git a/.settings/.jsdtscope b/.settings/.jsdtscope
new file mode 100644
index 0000000..ba3c245
--- /dev/null
+++ b/.settings/.jsdtscope
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/.settings/com.google.appengine.eclipse.core.prefs b/.settings/com.google.appengine.eclipse.core.prefs
new file mode 100644
index 0000000..a60576c
--- /dev/null
+++ b/.settings/com.google.appengine.eclipse.core.prefs
@@ -0,0 +1,3 @@
+#Thu Jun 16 10:18:26 CEST 2011
+eclipse.preferences.version=1
+filesCopiedToWebInfLib=
diff --git a/.settings/com.google.gdt.eclipse.core.prefs b/.settings/com.google.gdt.eclipse.core.prefs
new file mode 100644
index 0000000..9f2b8a3
--- /dev/null
+++ b/.settings/com.google.gdt.eclipse.core.prefs
@@ -0,0 +1,5 @@
+eclipse.preferences.version=1
+jarsExcludedFromWebInfLib=
+lastWarOutDir=/home/backup-old-home/francesco-mangiacrapa/workspace/speciesdiscovery/target/species-discovery-3.0.0-SNAPSHOT
+warSrcDir=src/main/webapp
+warSrcDirIsOutput=false
diff --git a/.settings/com.google.gwt.eclipse.core.prefs b/.settings/com.google.gwt.eclipse.core.prefs
new file mode 100644
index 0000000..c803c44
--- /dev/null
+++ b/.settings/com.google.gwt.eclipse.core.prefs
@@ -0,0 +1,5 @@
+#Thu Jun 16 11:14:17 CEST 2011
+eclipse.preferences.version=1
+entryPointModules=
+filesCopiedToWebInfLib=gwt-servlet.jar
+gwtCompileSettings=PGd3dC1jb21waWxlLXNldHRpbmdzPjxsb2ctbGV2ZWw+SU5GTzwvbG9nLWxldmVsPjxvdXRwdXQtc3R5bGU+T0JGVVNDQVRFRDwvb3V0cHV0LXN0eWxlPjxleHRyYS1hcmdzPjwhW0NEQVRBWy13YXIgc3JjL21haW4vd2ViYXBwXV0+PC9leHRyYS1hcmdzPjx2bS1hcmdzPjwhW0NEQVRBWy1YbXg1MTJtXV0+PC92bS1hcmdzPjxlbnRyeS1wb2ludC1tb2R1bGU+Y29tLmNvbXBhbnkuU29tZU1vZHVsZTwvZW50cnktcG9pbnQtbW9kdWxlPjwvZ3d0LWNvbXBpbGUtc2V0dGluZ3M+
diff --git a/.settings/org.eclipse.core.resources.prefs b/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 0000000..29abf99
--- /dev/null
+++ b/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,6 @@
+eclipse.preferences.version=1
+encoding//src/main/java=UTF-8
+encoding//src/main/resources=UTF-8
+encoding//src/test/java=UTF-8
+encoding//src/test/resources=UTF-8
+encoding/=UTF-8
diff --git a/.settings/org.eclipse.jdt.core.prefs b/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..69c31cd
--- /dev/null
+++ b/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,8 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
+org.eclipse.jdt.core.compiler.compliance=1.6
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
+org.eclipse.jdt.core.compiler.source=1.6
diff --git a/.settings/org.eclipse.m2e.core.prefs b/.settings/org.eclipse.m2e.core.prefs
new file mode 100644
index 0000000..f897a7f
--- /dev/null
+++ b/.settings/org.eclipse.m2e.core.prefs
@@ -0,0 +1,4 @@
+activeProfiles=
+eclipse.preferences.version=1
+resolveWorkspaceProjects=true
+version=1
diff --git a/.settings/org.eclipse.wst.common.component b/.settings/org.eclipse.wst.common.component
new file mode 100644
index 0000000..ab964ba
--- /dev/null
+++ b/.settings/org.eclipse.wst.common.component
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+ uses
+
+
+ uses
+
+
+
+
+
diff --git a/.settings/org.eclipse.wst.common.project.facet.core.xml b/.settings/org.eclipse.wst.common.project.facet.core.xml
new file mode 100644
index 0000000..fefc63a
--- /dev/null
+++ b/.settings/org.eclipse.wst.common.project.facet.core.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
diff --git a/.settings/org.eclipse.wst.jsdt.ui.superType.container b/.settings/org.eclipse.wst.jsdt.ui.superType.container
new file mode 100644
index 0000000..3bd5d0a
--- /dev/null
+++ b/.settings/org.eclipse.wst.jsdt.ui.superType.container
@@ -0,0 +1 @@
+org.eclipse.wst.jsdt.launching.baseBrowserLibrary
\ No newline at end of file
diff --git a/.settings/org.maven.ide.eclipse.prefs b/.settings/org.maven.ide.eclipse.prefs
new file mode 100644
index 0000000..c74c58e
--- /dev/null
+++ b/.settings/org.maven.ide.eclipse.prefs
@@ -0,0 +1,9 @@
+#Thu Sep 02 10:42:12 CEST 2010
+activeProfiles=
+eclipse.preferences.version=1
+fullBuildGoals=process-test-resources
+includeModules=false
+resolveWorkspaceProjects=true
+resourceFilterGoals=process-resources resources\:testResources
+skipCompilerPlugin=true
+version=1
diff --git a/SpeciesDiscoveryTest-dev.launch b/SpeciesDiscoveryTest-dev.launch
new file mode 100644
index 0000000..546b1d2
--- /dev/null
+++ b/SpeciesDiscoveryTest-dev.launch
@@ -0,0 +1,22 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/SpeciesDiscoveryTest-prod.launch b/SpeciesDiscoveryTest-prod.launch
new file mode 100644
index 0000000..f4cb15a
--- /dev/null
+++ b/SpeciesDiscoveryTest-prod.launch
@@ -0,0 +1,22 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/distro/INSTALL b/distro/INSTALL
new file mode 100644
index 0000000..fb73de1
--- /dev/null
+++ b/distro/INSTALL
@@ -0,0 +1,2 @@
+Use the respective war file of this component
+
\ No newline at end of file
diff --git a/distro/LICENSE b/distro/LICENSE
new file mode 100644
index 0000000..cdb5851
--- /dev/null
+++ b/distro/LICENSE
@@ -0,0 +1,7 @@
+gCube System - License
+------------------------------------------------------------
+
+The gCube/gCore software is licensed as Free Open Source software conveying to the EUPL (http://ec.europa.eu/idabc/eupl).
+The software and documentation is provided by its authors/distributors "as is" and no expressed or
+implied warranty is given for its use, quality or fitness for a particular case.
+
diff --git a/distro/MAINTAINERS b/distro/MAINTAINERS
new file mode 100644
index 0000000..e01a9f2
--- /dev/null
+++ b/distro/MAINTAINERS
@@ -0,0 +1,5 @@
+Mantainers
+-------
+
+* Federico De Faveri (federico.defaveri@isti.cnr.it), CNR Pisa, Istituto di Scienza e Tecnologie dell'Informazione "A. Faedo"
+* Francesco Mangiacrapa (francesco.mangiacrapa@isti.cnr.it), CNR Pisa, Istituto di Scienza e Tecnologie dell'Informazione "A. Faedo"
diff --git a/distro/README b/distro/README
new file mode 100644
index 0000000..76f6d3a
--- /dev/null
+++ b/distro/README
@@ -0,0 +1,51 @@
+The gCube System - Species Discovery
+------------------------------------------------------------
+
+This work is partially funded by the European Commission in the
+context of the D4Science project (www.d4science.eu), under the 1st call of FP7 IST priority.
+
+
+Authors
+-------
+
+* Federico De Faveri (federico.defaveri@isti.cnr.it), CNR Pisa,
+ Istituto di Scienza e Tecnologie dell'Informazione "A. Faedo".
+
+ * Francesco Mangiacrapa (francesco.mangiacrapa@isti.cnr.it), CNR Pisa,
+ Istituto di Scienza e Tecnologie dell'Informazione "A. Faedo".
+
+
+Version and Release Date
+------------------------
+v. 3.0.0
+
+Description
+-----------
+
+The Species Discovery lets the users discovery species information from the Species Service.
+
+
+Download information
+--------------------
+
+Source code is available from SVN:
+https://svn.d4science-ii.research-infrastructures.eu/gcube/trunk/portlets/user/SpeciesDiscovery
+
+Binaries can be downloaded from:
+n/a
+
+
+Documentation
+-------------
+Documentation is available on-line from the Projects Documentation Wiki:
+
+https://gcube.wiki.gcube-system.org/gcube/index.php
+
+Licensing
+---------
+
+This software is licensed under the terms you may find in the file named "LICENSE" in this directory.
+
+
+
+
diff --git a/distro/changelog.xml b/distro/changelog.xml
new file mode 100644
index 0000000..541a0c4
--- /dev/null
+++ b/distro/changelog.xml
@@ -0,0 +1,20 @@
+
+
+ Ticket #986: Species Occurrence jobs / Re-submit job and "info"
+ Ticket #1002: SPD portlet persistence refactoring
+
+
+ Ticket #508: Implementation of requirements resulting from ticket #508
+
+
+ Ticket #81: Implementation of requirements resulting from user feedback
+ Dynamic clustering of result set items
+ Revised the occurrence points visualization strategy through the GIS Viewer
+
+
+ Fixed 447: Map generation fails in Species Discovery Portlet
+
+
+ First release
+
+
\ No newline at end of file
diff --git a/distro/descriptor.xml b/distro/descriptor.xml
new file mode 100644
index 0000000..4efc827
--- /dev/null
+++ b/distro/descriptor.xml
@@ -0,0 +1,48 @@
+
+ servicearchive
+
+ tar.gz
+
+ /
+
+
+ ${distroDirectory}
+ /
+ true
+
+ README
+ LICENSE
+ INSTALL
+ MAINTAINERS
+ changelog.xml
+
+ 755
+ true
+
+
+ target/apidocs
+ /${artifactId}/doc/api
+ true
+ 755
+
+
+
+
+
+ ./
+ true
+
+
+
+ /${artifactId}
+
+
+
+ /${artifactId}
+ true
+
+
+
\ No newline at end of file
diff --git a/distro/profile.xml b/distro/profile.xml
new file mode 100644
index 0000000..51c3b6b
--- /dev/null
+++ b/distro/profile.xml
@@ -0,0 +1,25 @@
+
+
+
+ Service
+
+ ${description}
+ PortletUser
+ ${artifactId}
+ ${version}
+
+
+ ${artifactId}
+ ${version}
+
+ ${groupId}
+ ${artifactId}
+ ${version}
+
+
+ target/${build.finalName}.war
+
+
+
+
+
diff --git a/distro/svnpath.txt b/distro/svnpath.txt
new file mode 100644
index 0000000..edacb04
--- /dev/null
+++ b/distro/svnpath.txt
@@ -0,0 +1 @@
+${scm.url}
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
new file mode 100644
index 0000000..0e5aebe
--- /dev/null
+++ b/pom.xml
@@ -0,0 +1,381 @@
+
+ 4.0.0
+
+ maven-parent
+ org.gcube.tools
+ 1.0.0
+
+
+
+
+
+
+ eclipselink
+ http://maven.research-infrastructures.eu:8081/nexus/content/repositories/eclipselink/
+
+
+
+ org.gcube.portlets.user
+ species-discovery
+ war
+ 3.0.0-SNAPSHOT
+ gCube Species Discovery
+
+ gCube Species Discovery Portlet lets the users discovery species information from the Species Service.
+
+
+ scm:svn:http://svn.d4science.research-infrastructures.eu/gcube/trunk/portlets/user/${project.artifactId}
+ scm:https://svn.d4science.research-infrastructures.eu/gcube/trunk/portlets/user/${project.artifactId}
+ http://svn.d4science.research-infrastructures.eu/gcube/trunk/portlets/user/${project.artifactId}
+
+
+
+ 2.4.0
+ distro
+
+ 1.6
+ 1.6
+ ${project.build.directory}/${project.build.finalName}
+
+ UTF-8
+ UTF-8
+
+
+
+
+
+
+ org.gcube.data.spd
+ spd-client-library
+ [2.0.0-SNAPSHOT, 3.0.0-SNAPSHOT)
+
+
+
+ org.gcube.data.spd
+ spql-parser
+ [1.0.0-SNAPSHOT, 2.0.0-SNAPSHOT)
+
+
+
+ org.gcube.common
+ csv4j
+ [1.1.0-SNAPSHOT, 2.0.0-SNAPSHOT)
+ provided
+
+
+
+ org.gcube.data.spd
+ spd-model
+ [1.0.0-SNAPSHOT, 2.0.0-SNAPSHOT)
+ provided
+
+
+
+ org.gcube.resources.discovery
+ discovery-client
+ [1.0.0-SNAPSHOT, 2.0.0-SNAPSHOT)
+ provided
+
+
+
+
+ org.eclipse.persistence
+ eclipselink
+ 2.4.0
+
+
+
+
+ org.gcube.contentmanagement
+ storage-manager-wrapper
+ [1.0.1-SNAPSHOT, 2.0.0-SNAPSHOT)
+ provided
+
+
+
+ org.gcube.contentmanagement
+ storage-manager-core
+ [1.0.1-SNAPSHOT, 2.0.0-SNAPSHOT)
+ provided
+
+
+
+
+
+ org.gcube.portlets.user
+ workspace-light-tree
+ [2.9.0-SNAPSHOT, 3.0.0-SNAPSHOT)
+ provided
+
+
+
+
+ org.gcube.portlets.user
+ gis-viewer
+ [3.0.0-SNAPSHOT, 4.0.0-SNAPSHOT)
+
+
+
+ org.gcube.portlets.user
+ gcube-gis-viewer
+ [2.0.0-SNAPSHOT, 3.0.0-SNAPSHOT)
+
+
+
+ org.gwtopenmaps.openlayers
+ gwt-openlayers-client
+ 0.6
+ provided
+
+
+
+
+ com.allen-sauer.gwt.log
+ gwt-log
+ 3.1.7
+
+
+
+
+ com.h2database
+ h2
+ 1.3.166
+ provided
+
+
+
+
+ xerces
+ xercesImpl
+ 2.9.1
+ provided
+
+
+
+ com.google.gwt
+ gwt-user
+ ${gwtVersion}
+ provided
+
+
+ com.google.gwt
+ gwt-servlet
+ ${gwtVersion}
+ provided
+
+
+ com.sencha.gxt
+ gxt
+ 2.2.5
+ provided
+
+
+ org.gcube.core
+ gcf
+ [1.4.0-SNAPSHOT, 2.0.0-SNAPSHOT)
+ provided
+
+
+ org.gcube.portlets.user
+ gcube-widgets
+ [1.4.0-SNAPSHOT, 2.0.0-SNAPSHOT)
+ provided
+
+
+ org.gcube.portal
+ custom-portal-handler
+ [1.2.0-SNAPSHOT, 2.0.0-SNAPSHOT)
+ provided
+
+
+
+ org.gcube.applicationsupportlayer
+ aslcore
+ [3.2.0-SNAPSHOT, 4.0.0-SNAPSHOT)
+ provided
+
+
+ org.gcube.portal
+ social-networking-library
+ [1.0.0-SNAPSHOT, 2.0.0-SNAPSHOT)
+ provided
+
+
+ org.gcube.portlets.user
+ workspace-tree-widget
+ [6.0.0-SNAPSHOT, 7.0.0-SNAPSHOT)
+ provided
+
+
+ org.gcube.contentmanagement
+ storage-resource-link-plugin
+ 1.0.0-SNAPSHOT
+ provided
+
+
+ org.gcube.portlets.user
+ home-library
+ [4.3.0-SNAPSHOT, 5.0.0-SNAPSHOT)
+ provided
+
+
+ org.gcube.portlets.user
+ home-library-jcr
+ [1.3.0-SNAPSHOT, 2.0.0-SNAPSHOT)
+ provided
+
+
+ org.gcube.dvos
+ usermanagement-core
+ [1.3.0-SNAPSHOT, 2.0.0-SNAPSHOT)
+
+
+ com.liferay.portal
+ portal-service
+ 6.0.6
+ provided
+
+
+ javax.portlet
+ portlet-api
+ 2.0
+ provided
+
+
+ org.slf4j
+ slf4j-log4j12
+ 1.6.4
+ runtime
+
+
+ org.slf4j
+ slf4j-api
+ 1.6.4
+ runtime
+
+
+ junit
+ junit
+ 4.7
+ test
+
+
+ javax.validation
+ validation-api
+ 1.0.0.GA
+ test
+
+
+ javax.validation
+ validation-api
+ 1.0.0.GA
+ sources
+ test
+
+
+
+
+
+ ${webappDirectory}/WEB-INF/classes
+
+
+
+
+
+ org.codehaus.mojo
+ gwt-maven-plugin
+ 2.4.0
+
+
+
+ compile
+
+
+
+
+
+
+ WorkspacePortlet.html
+ ${webappDirectory}
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-war-plugin
+ 2.1.1
+
+
+ compile
+
+ exploded
+
+
+
+
+ ${webappDirectory}
+
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+ 2.3.2
+
+
+ 1.6
+
+
+
+
+ org.apache.maven.plugins
+ maven-assembly-plugin
+ 2.2
+
+
+ ${distroDirectory}/descriptor.xml
+
+
+
+
+ servicearchive
+ install
+
+ single
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-resources-plugin
+ 2.5
+
+
+ copy-profile
+ install
+
+ copy-resources
+
+
+ target
+
+
+ ${distroDirectory}
+ true
+
+ profile.xml
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/main/java/META-INF/persistence.xml b/src/main/java/META-INF/persistence.xml
new file mode 100644
index 0000000..76b661b
--- /dev/null
+++ b/src/main/java/META-INF/persistence.xml
@@ -0,0 +1,21 @@
+
+
+
+ org.gcube.portlets.user.speciesdiscovery.shared.CommonName
+ org.gcube.portlets.user.speciesdiscovery.shared.Taxon
+ org.gcube.portlets.user.speciesdiscovery.shared.ResultRow
+ org.gcube.portlets.user.speciesdiscovery.shared.ItemParameter
+ org.gcube.portlets.user.speciesdiscovery.shared.Occurrence
+ org.gcube.portlets.user.speciesdiscovery.shared.TaxonomyRow
+ org.gcube.portlets.user.speciesdiscovery.shared.OccurrencesJob
+ org.gcube.portlets.user.speciesdiscovery.shared.TaxonomyJob
+
+
+
+
+
+
+
diff --git a/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/ConstantsSpeciesDiscovery.java b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/ConstantsSpeciesDiscovery.java
new file mode 100644
index 0000000..3d02183
--- /dev/null
+++ b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/ConstantsSpeciesDiscovery.java
@@ -0,0 +1,115 @@
+package org.gcube.portlets.user.speciesdiscovery.client;
+
+public final class ConstantsSpeciesDiscovery {
+
+ //USED IN MODEL CLASS
+ public static final String ID = "id";
+ public static final String NAME = "name";
+ public static final String ISLEAF = "isLeaf";
+ public static final String BASETAXONID = "BaseTaxonID";
+ public static final String BASETAXONNAME= "BaseTaxon";
+ public static final String COUNTOF = "CountOf";
+ public static final String RANK = "Rank";
+// public static final String GROUPEDIDLIST = "GroupedIDList";
+
+ //USED IN CLASSIFICATION FILTER
+ public static final String BIOTACLASSID = "BiotaID";
+ public static final String BIOTACLASS = "Biota";
+ public static final String ANIMALIACLASSID = "AnimaliaID";
+ public static final String ANIMALIACLASS = "Animalia";
+ public static final String PLANTEACLASSID = "PlanteaID";
+ public static final String PLANTEACLASS = "Plantea";
+ public static final String UNKNOWN = "Unknown";
+ public static final String UNKNOWNID = "UnknownID";
+
+ //USED IN GRID
+ public static final String NORESULTS = "No results";
+ public static final String NONE = "None";
+ public static final String FILTER = "Filter: ";
+ public static final String REMOVEFILTERTOOLTIP = "Remove current filter";
+ public static final String VIEWDETAILS = "View Details (Only selected)";
+ public static final String SELECTALL = "Check All Rows";
+ public static final String DESELECTALL = "Uncheck All Rows";
+
+ //USED IN CLASSIFICATION FILTER
+// public static final String[] MAIN_TAXONOMIC_RANK = new String[]{"kingdom", "phylum", "class", "order", "family", "genus", "species"};
+ public static final String GROUPBYRANK = "Group results by";
+
+
+ public static final String LOADINGSTYLE = "x-mask-loading";
+ public static final String SORTMESSAGE = "Sort filter in alphabetical order (from A to Z)";
+ public static final String REQUEST_DATA = "request data...";
+
+ //USED IN SEARCH BORDER LAYPUT PANEL
+ public final static int JOBPOLLINGMILLISECONDS = 20000;
+
+ //USED IN SEARCH FORM PANEL
+ protected static final String OCCURENCES = "Occurences";
+ protected static final String CLASSIFICATION = "Classification";
+ protected static final String COMMON_NAME = "Common name";
+ protected static final String SCIENTIFIC_NAME = "Scientific name";
+
+ //USED IN ADAVANCED FILTERT
+ public static final String AVAILABLEFILTERBOUND = "Bounds filters (lower-upper) are available with following plug-in";
+ public static final String AVAILABLEFILTERDATE = "Date filter (from-to) is available with following plug-in";
+ public static final String AVAILABLEDATASOURCES = "Occurence points and classification search are available with following plug-in";
+
+ //USED IN GISVIEWER
+ public static final String LME = "lme";
+ public static final String FAOAREA = "faoarea";
+ public static final String EEZALL = "eezall";
+ public static final String SST_AN_MEAN = "sstAnMean";
+ public static final String SALINITY_MEAN = "salinityMean";
+ public static final String PRIM_PROD_MEAN = "primProdMean";
+ public static final String ENVIRONMENTS = "environments";
+ public static final String DEPTH_MEAN_ANNUAL = "DepthMeanAnnual";
+ public static final String WORLD_BORDERS = "worldborders";
+
+ //ELAPSED TIME FORMATTER
+ public static final String TIME_ZONE_UTC = "UTC";
+ public static final String TIMEFORMAT_HH_MM_SS = "HH:mm:ss";
+
+ //USED IN SERVER/SHARED PACKAGE
+ public static final String NULL = "null";
+ public static final String UNDEFINED = "Undefined";
+ public static final String NOT_FOUND = "not found";
+ public static int LIMIT_ITEM_DETAILS = 100;
+
+ //USED IN VIEW DETAILSWINDOW
+ public static final String THE_MAX_NUMBER_OF_ITEMS_DISPLAYABLE_IS = "The max number of items displayable is ";
+ public static final String ROW_LIMIT_REACHED = "Row limit reached";
+ public static final String SAVE_OCCURENCES_POINTS_FROM_SELECTED_RESULTS = "Save occurences points from selected results.";
+ public static final String SAVES_IN_CSV_FILE_FORMAT = "Saves in CSV file format";
+ public static final String CSV = "CSV";
+ public static final String SAVES_IN_DARWIN_CORE_FILE_FORMAT = "Saves in Darwin Core file format";
+ public static final String DARWIN_CORE = "Darwin Core";
+ public static final String OPEN_MODELLER_BY_DATA_SOURCE = "openModeller CSV (by Data Source)";
+ public static final String OPEN_MODELLER = "openModeller CSV";
+ public static final String PLAIN_CSV_BY_DATA_SOURCE = "plain CSV (by Data Source)";
+ public static final String PLAIN_CSV = "plain CSV";
+ public static final String SAVE_OCCURRENCES = "Save Occurrences";
+ public static final String SHOW_IN_GIS_VIEWER = "Show in Gis Viewer";
+// public static final String SAVES_IN_DARWIN_CORE_ARCHIVE_FORMAT = "Saves in Darwin Core Archive format";
+// public static final String DARWIN_CORE_ARCHIVE = "Darwin Core Archive";
+ public static final String SAVE_TAXONOMY_ITEMS = "Save Taxonomy Items";
+ public final static String DETAILS = "Details";
+ public final static String OCCURRENCEPOINTS = "Occurrence points";
+ public final static int SCHEDULE_MILLIS_COUNT_OCCURRENCES = 2500;
+ public static final int PAGE_SIZE = 25;
+ public final static String DEFAULTLANGUAGE = "English";
+ public final static String BYSCIENTIFICNAME = "by scientific name";
+ public final static String SCIENTIFICNAME = "Scientific name";
+ public final static String BYCOMMONNAME = "by common name";
+ public static final String CAN_NO_BE_RE_SUBMITTED_UNTIL_IT_HAS_COMPLETED = "can no be re-submitted until it has completed!";
+ public static final String MESSAGE_CONFIRM_DELETE_JOB = "Are you sure you want to delete the job";
+ public static final String CONFIRM_DELETE = "Confirm delete";
+ public static final String ALERT = "Alert";
+ public static final String IS_NOT_COMPLETED = " is not completed!";
+
+ //USED IN TABLE FOR TAXONOMY ROW
+ public static final String SAVES_IN_DARWIN_CORE_ARCHIVE_FORMAT = "Saves in Darwin Core Archive format";
+ public static final String DARWIN_CORE_ARCHIVE = "Darwin Core Archive";
+ public static final String SAVES_TAXONOMY_CHILDREN_FROM_RESULT = "Saves taxonomy children from result.";
+ public static final String SAVE_TAXONOMY_CHILDREN = "Save Taxonomy Children";
+
+}
diff --git a/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/OccurrencesWindow.java b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/OccurrencesWindow.java
new file mode 100644
index 0000000..bb244e1
--- /dev/null
+++ b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/OccurrencesWindow.java
@@ -0,0 +1,120 @@
+/**
+ *
+ */
+package org.gcube.portlets.user.speciesdiscovery.client;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.gcube.portlets.user.speciesdiscovery.client.util.GridField;
+import org.gcube.portlets.user.speciesdiscovery.client.util.OccurencesGridFields;
+import org.gcube.portlets.user.speciesdiscovery.client.util.Util;
+import org.gcube.portlets.user.speciesdiscovery.client.util.stream.DataSourceManager;
+import org.gcube.portlets.user.speciesdiscovery.client.util.stream.StreamPagingLoader;
+import org.gcube.portlets.user.speciesdiscovery.client.util.stream.StreamPagingToolBar;
+import org.gcube.portlets.user.speciesdiscovery.shared.SpeciesCapability;
+
+import com.allen_sauer.gwt.log.client.Log;
+import com.extjs.gxt.ui.client.data.ModelData;
+import com.extjs.gxt.ui.client.widget.Window;
+import com.extjs.gxt.ui.client.widget.grid.ColumnConfig;
+import com.extjs.gxt.ui.client.widget.grid.ColumnModel;
+import com.extjs.gxt.ui.client.widget.grid.Grid;
+import com.extjs.gxt.ui.client.widget.layout.FitLayout;
+import com.google.gwt.core.client.Scheduler;
+import com.google.gwt.core.client.Scheduler.ScheduledCommand;
+import com.google.gwt.user.client.rpc.AsyncCallback;
+
+
+/**
+ * @author "Federico De Faveri defaveri@isti.cnr.it"
+ *
+ */
+public class OccurrencesWindow extends Window {
+
+ protected static final String OCCURRENCE_POINTS = "Occurrence points";
+
+ protected static final int PAGE_SIZE = 20;
+
+ protected StreamPagingLoader loader;
+ protected int count = 0;
+ private DataSourceManager dataSourceManager;
+
+
+ public OccurrencesWindow()
+ {
+ setHeading(OCCURRENCE_POINTS);
+ setLayout(new FitLayout());
+ setModal(true);
+ setResizable(true);
+ setSize(1200, 500);
+
+ this.dataSourceManager = DataSourceManager.getInstance();
+
+ List config = new ArrayList();
+
+ for (GridField field:OccurencesGridFields.values()) config.add(Util.createColumnConfig(field, 150));
+
+ final ColumnModel cm = new ColumnModel(config);
+
+ initLoader();
+
+
+ Grid grid = new Grid(loader.getStore(), cm);
+ grid.setBorders(true);
+
+ StreamPagingToolBar toolBar = new StreamPagingToolBar();
+ toolBar.bind(loader);
+
+ setBottomComponent(toolBar);
+
+ add(grid);
+ }
+
+ protected void initLoader()
+ {
+ loader = new StreamPagingLoader(PAGE_SIZE);
+ loader.setDataSource(this.dataSourceManager.getDataSourceByResultType(SpeciesCapability.OCCURRENCESPOINTS));
+ }
+
+ public void loadOccurences()
+ {
+ Log.trace("Loading occurrences");
+
+ count = 0;
+
+ dataSourceManager.setExpectedOccurencePoints(count);
+
+ SpeciesDiscovery.taxonomySearchService.retrieveOccurencesFromSelection(new AsyncCallback() {
+
+ @Override
+ public void onSuccess(Integer expectedPoints) {
+ Log.trace("Expected points: "+expectedPoints);
+ dataSourceManager.setExpectedOccurencePoints(expectedPoints);
+ count = expectedPoints;
+ loader.startLoading(true);
+ }
+
+ @Override
+ public void onFailure(Throwable caught) {
+ System.err.println("Error getting occurences");
+ }
+ });
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ protected void onHide() {
+ super.onHide();
+ Scheduler.get().scheduleDeferred(new ScheduledCommand() {
+
+ @Override
+ public void execute() {
+ loader.reset();
+ }
+ });
+ }
+
+}
diff --git a/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/SearchBorderLayoutPanel.java b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/SearchBorderLayoutPanel.java
new file mode 100644
index 0000000..a4079dd
--- /dev/null
+++ b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/SearchBorderLayoutPanel.java
@@ -0,0 +1,161 @@
+package org.gcube.portlets.user.speciesdiscovery.client;
+
+
+import org.gcube.portlets.user.speciesdiscovery.client.event.LoadDataSourceEvent;
+import org.gcube.portlets.user.speciesdiscovery.client.job.SpeciesJobPanel;
+import org.gcube.portlets.user.speciesdiscovery.shared.SearchResultType;
+
+import com.extjs.gxt.ui.client.Style.LayoutRegion;
+import com.extjs.gxt.ui.client.util.Margins;
+import com.extjs.gxt.ui.client.widget.ContentPanel;
+import com.extjs.gxt.ui.client.widget.layout.BorderLayout;
+import com.extjs.gxt.ui.client.widget.layout.BorderLayoutData;
+import com.google.gwt.core.client.Scheduler;
+import com.google.gwt.core.client.Scheduler.ScheduledCommand;
+import com.google.gwt.event.shared.EventBus;
+import com.google.gwt.event.shared.SimpleEventBus;
+import com.google.gwt.user.client.Timer;
+
+/**
+ *
+ * @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
+ *
+ */
+public class SearchBorderLayoutPanel extends ContentPanel {
+
+ /**
+ * This is a singleton
+ */
+ private static SearchBorderLayoutPanel instance;
+
+ private BorderLayoutData northData;
+ private BorderLayoutData centerData;
+ private BorderLayoutData westData;
+ private BorderLayoutData southData;
+ private final BorderLayout layout = new BorderLayout();
+
+ private static SearchController searchController;
+ private SpeciesSearchFormPanel speciesNorthPanel;
+ private SpeciesResultsPanelCardLayout speciesCenterPanel;
+ private SpeciesResultFilterAccordionPanel speciesWestPanel;
+
+ private SpeciesJobPanel speciesSouthPanel;
+
+ private final EventBus eventBus;
+
+
+ public static final int DEFAULTNORTHHEIGHT = 77;
+
+ public static synchronized SearchBorderLayoutPanel getInstance() {
+ if (instance == null)
+ instance = new SearchBorderLayoutPanel();
+ return instance;
+ }
+
+
+ private SearchBorderLayoutPanel() {
+
+ setLayout(layout);
+ setHeaderVisible(false);
+
+ eventBus = new SimpleEventBus();
+
+ searchController = new SearchController(eventBus, this);
+ speciesNorthPanel = new SpeciesSearchFormPanel(eventBus);
+
+ speciesSouthPanel = new SpeciesJobPanel(eventBus);
+
+ //TODO REMOVE searchController.getStreamPagingLoader()
+ speciesCenterPanel = new SpeciesResultsPanelCardLayout(eventBus, searchController.getStreamPagingLoader(), searchController);
+
+ northData = new BorderLayoutData(LayoutRegion.NORTH, DEFAULTNORTHHEIGHT);
+ northData.setCollapsible(false);
+ northData.setFloatable(false);
+ northData.setHideCollapseTool(true);
+ northData.setSplit(false);
+
+ westData = new BorderLayoutData(LayoutRegion.WEST, 250, 300, 350);
+ westData.setSplit(true);
+ westData.setCollapsible(true);
+ westData.setMargins(new Margins(0,0,0,0));
+
+ centerData = new BorderLayoutData(LayoutRegion.CENTER);
+ centerData.setMargins(new Margins(0));
+
+ southData = new BorderLayoutData(LayoutRegion.SOUTH, 34, 34, 34);
+// southData = new BorderLayoutData(LayoutRegion.SOUTH, 150, 250, 250);
+// southData.setSplit(true);
+// southData.setCollapsible(true);
+
+ southData.setMargins(new Margins(0,0,0,0));
+
+ speciesWestPanel = new SpeciesResultFilterAccordionPanel(eventBus, searchController.getStreamPagingLoader());
+
+// eventBus.fireEvent(new LoadDataSourceEvent()); //load Data source event is fired
+
+ add(speciesNorthPanel, northData);
+ add(speciesCenterPanel, centerData);
+ add(speciesWestPanel, westData);
+
+ add(speciesSouthPanel, southData);
+
+ initApplication();
+ }
+
+
+ private void initApplication(){
+
+ Scheduler.get().scheduleDeferred(new ScheduledCommand() {
+
+ @Override
+ public void execute() {
+ eventBus.fireEvent(new LoadDataSourceEvent()); //load Data source event is fired
+
+ SearchController.excecuteGetJobs(SearchResultType.TAXONOMY_ITEM, false);
+ SearchController.excecuteGetJobs(SearchResultType.OCCURRENCE_POINT, false);
+
+ pollSpeciesJobs(ConstantsSpeciesDiscovery.JOBPOLLINGMILLISECONDS);
+
+ }
+ });
+ }
+
+
+ public static void pollSpeciesJobs(int milliseconds){
+
+ Timer timer = new Timer() {
+ @Override
+ public void run()
+ {
+
+ SearchController.excecuteGetJobs(SearchResultType.TAXONOMY_ITEM, false);
+ SearchController.excecuteGetJobs(SearchResultType.OCCURRENCE_POINT, false);
+
+ }
+ };
+
+ timer.scheduleRepeating(milliseconds);
+ }
+
+ public void updateNorthSize(int height){
+ northData.setSize(height);
+ layout(true);
+ }
+
+ public SpeciesSearchFormPanel getSpeciesNorthPanel() {
+ return speciesNorthPanel;
+ }
+
+ public SpeciesResultsPanelCardLayout getSpeciesCenterPanel() {
+ return speciesCenterPanel;
+ }
+
+ public SpeciesResultFilterAccordionPanel getSpeciesWestPanel() {
+ return speciesWestPanel;
+ }
+
+
+ public SpeciesJobPanel getSpeciesSouthPanel() {
+ return speciesSouthPanel;
+ }
+}
diff --git a/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/SearchController.java b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/SearchController.java
new file mode 100644
index 0000000..4399665
--- /dev/null
+++ b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/SearchController.java
@@ -0,0 +1,1450 @@
+/**
+ *
+ */
+package org.gcube.portlets.user.speciesdiscovery.client;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
+import org.gcube.portlets.user.gcubegisviewer.client.GCubeGisViewer;
+import org.gcube.portlets.user.gcubegisviewer.client.event.SaveEvent;
+import org.gcube.portlets.user.gcubegisviewer.client.event.SaveHandler;
+import org.gcube.portlets.user.gisviewer.client.GisViewerParameters;
+import org.gcube.portlets.user.speciesdiscovery.client.advancedsearch.AdvancedSearchPanelManager;
+import org.gcube.portlets.user.speciesdiscovery.client.event.ActiveButtonCheckAllRowEvent;
+import org.gcube.portlets.user.speciesdiscovery.client.event.ActiveButtonCheckAllRowEventHandler;
+import org.gcube.portlets.user.speciesdiscovery.client.event.ActiveFilterOnResultEvent;
+import org.gcube.portlets.user.speciesdiscovery.client.event.ActiveFilterOnResultEventHandler;
+import org.gcube.portlets.user.speciesdiscovery.client.event.ActiveMaskLoadingGrid;
+import org.gcube.portlets.user.speciesdiscovery.client.event.ActiveMaskLoadingGridHandler;
+import org.gcube.portlets.user.speciesdiscovery.client.event.CapabilitySelectedEvent;
+import org.gcube.portlets.user.speciesdiscovery.client.event.CapabilitySelectedEventHandler;
+import org.gcube.portlets.user.speciesdiscovery.client.event.ChangeFilterClassificationOnResultEvent;
+import org.gcube.portlets.user.speciesdiscovery.client.event.ChangeFilterClassificationOnResultEventHandler;
+import org.gcube.portlets.user.speciesdiscovery.client.event.CompletedLoadDataSourceEvent;
+import org.gcube.portlets.user.speciesdiscovery.client.event.CompletedLoadDataSourceEventHandler;
+import org.gcube.portlets.user.speciesdiscovery.client.event.CreateOccurrenceJobEvent;
+import org.gcube.portlets.user.speciesdiscovery.client.event.CreateOccurrenceJobEventHandler;
+import org.gcube.portlets.user.speciesdiscovery.client.event.CreateTaxonomyJobEvent;
+import org.gcube.portlets.user.speciesdiscovery.client.event.CreateTaxonomyJobEventHandler;
+import org.gcube.portlets.user.speciesdiscovery.client.event.DisableFilterEvent;
+import org.gcube.portlets.user.speciesdiscovery.client.event.DisableFilterEventHandler;
+import org.gcube.portlets.user.speciesdiscovery.client.event.LoadDataSourceEvent;
+import org.gcube.portlets.user.speciesdiscovery.client.event.LoadDataSourceEventHandler;
+import org.gcube.portlets.user.speciesdiscovery.client.event.ReLoadListJobEvent;
+import org.gcube.portlets.user.speciesdiscovery.client.event.ReLoadListJobEventHandler;
+import org.gcube.portlets.user.speciesdiscovery.client.event.ReSubmitJobEvent;
+import org.gcube.portlets.user.speciesdiscovery.client.event.ReSubmitJobEventHandler;
+import org.gcube.portlets.user.speciesdiscovery.client.event.SaveItemsEvent;
+import org.gcube.portlets.user.speciesdiscovery.client.event.SaveItemsEventHandler;
+import org.gcube.portlets.user.speciesdiscovery.client.event.SaveJobEvent;
+import org.gcube.portlets.user.speciesdiscovery.client.event.SaveJobEventHandler;
+import org.gcube.portlets.user.speciesdiscovery.client.event.SearchEvent;
+import org.gcube.portlets.user.speciesdiscovery.client.event.SearchEventHandler;
+import org.gcube.portlets.user.speciesdiscovery.client.event.SearchStartedEvent;
+import org.gcube.portlets.user.speciesdiscovery.client.event.SetCommonNamesEvent;
+import org.gcube.portlets.user.speciesdiscovery.client.event.SetCommonNamesEventHandler;
+import org.gcube.portlets.user.speciesdiscovery.client.event.ShowOccurrencesEvent;
+import org.gcube.portlets.user.speciesdiscovery.client.event.ShowOccurrencesEventHandler;
+import org.gcube.portlets.user.speciesdiscovery.client.event.ShowOccurrencesMapEvent;
+import org.gcube.portlets.user.speciesdiscovery.client.event.ShowOccurrencesMapEventHandler;
+import org.gcube.portlets.user.speciesdiscovery.client.event.ShowOnlySelectedRowEvent;
+import org.gcube.portlets.user.speciesdiscovery.client.event.ShowOnlySelectedRowEventHandler;
+import org.gcube.portlets.user.speciesdiscovery.client.event.UpdateAllRowSelectionEvent;
+import org.gcube.portlets.user.speciesdiscovery.client.event.UpdateAllRowSelectionEventHandler;
+import org.gcube.portlets.user.speciesdiscovery.client.event.UpdateFilterOnResultEvent;
+import org.gcube.portlets.user.speciesdiscovery.client.event.UpdateFilterOnResultEventHandler;
+import org.gcube.portlets.user.speciesdiscovery.client.event.UpdateRowSelectionEvent;
+import org.gcube.portlets.user.speciesdiscovery.client.event.UpdateRowSelectionEventHandler;
+import org.gcube.portlets.user.speciesdiscovery.client.event.ViewDetailsOfSelectedEvent;
+import org.gcube.portlets.user.speciesdiscovery.client.event.ViewDetailsOfSelectedEventHandler;
+import org.gcube.portlets.user.speciesdiscovery.client.filterresult.ResultFilterPanelManager;
+import org.gcube.portlets.user.speciesdiscovery.client.job.occurrence.OccurrenceJobSpeciesPanel;
+import org.gcube.portlets.user.speciesdiscovery.client.job.taxonomy.TaxonomyJobSpeciesPanel;
+import org.gcube.portlets.user.speciesdiscovery.client.util.SpeciesGridFields;
+import org.gcube.portlets.user.speciesdiscovery.client.util.Util;
+import org.gcube.portlets.user.speciesdiscovery.client.util.stream.DataSource;
+import org.gcube.portlets.user.speciesdiscovery.client.util.stream.DataSourceManager;
+import org.gcube.portlets.user.speciesdiscovery.client.util.stream.StreamPagingLoader;
+import org.gcube.portlets.user.speciesdiscovery.client.window.MessageDialog;
+import org.gcube.portlets.user.speciesdiscovery.client.window.ViewDetailsWindow;
+import org.gcube.portlets.user.speciesdiscovery.shared.CommonName;
+import org.gcube.portlets.user.speciesdiscovery.shared.Coordinate;
+import org.gcube.portlets.user.speciesdiscovery.shared.DataSourceModel;
+import org.gcube.portlets.user.speciesdiscovery.shared.DownloadState;
+import org.gcube.portlets.user.speciesdiscovery.shared.JobOccurrencesModel;
+import org.gcube.portlets.user.speciesdiscovery.shared.JobTaxonomyModel;
+import org.gcube.portlets.user.speciesdiscovery.shared.OccurrencesSaveEnum;
+import org.gcube.portlets.user.speciesdiscovery.shared.OccurrencesStatus;
+import org.gcube.portlets.user.speciesdiscovery.shared.ResultRow;
+import org.gcube.portlets.user.speciesdiscovery.shared.SaveFileFormat;
+import org.gcube.portlets.user.speciesdiscovery.shared.SearchFilters;
+import org.gcube.portlets.user.speciesdiscovery.shared.SearchResultType;
+import org.gcube.portlets.user.speciesdiscovery.shared.SearchType;
+import org.gcube.portlets.user.speciesdiscovery.shared.SpeciesCapability;
+import org.gcube.portlets.user.speciesdiscovery.shared.filter.ResultFilter;
+import org.gcube.portlets.user.workspace.lighttree.client.ItemType;
+import org.gcube.portlets.user.workspace.lighttree.client.event.DataLoadEvent;
+import org.gcube.portlets.user.workspace.lighttree.client.event.DataLoadHandler;
+import org.gcube.portlets.user.workspace.lighttree.client.event.PopupEvent;
+import org.gcube.portlets.user.workspace.lighttree.client.event.PopupHandler;
+import org.gcube.portlets.user.workspace.lighttree.client.save.WorkspaceLightTreeSavePopup;
+
+import com.allen_sauer.gwt.log.client.Log;
+import com.extjs.gxt.ui.client.data.BaseModelData;
+import com.extjs.gxt.ui.client.event.Listener;
+import com.extjs.gxt.ui.client.event.MessageBoxEvent;
+import com.extjs.gxt.ui.client.widget.Dialog;
+import com.extjs.gxt.ui.client.widget.Info;
+import com.extjs.gxt.ui.client.widget.MessageBox;
+import com.google.gwt.core.client.GWT;
+import com.google.gwt.core.client.Scheduler;
+import com.google.gwt.core.client.Scheduler.ScheduledCommand;
+import com.google.gwt.event.shared.EventBus;
+import com.google.gwt.user.client.rpc.AsyncCallback;
+
+/**
+ * @author "Federico De Faveri defaveri@isti.cnr.it" - "Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it"
+ *
+ */
+public class SearchController {
+
+ protected static final int PAGE_SIZE = 25;
+
+ public static EventBus eventBus;
+ protected StreamPagingLoader streamPagingLoader;
+ protected boolean showOnlySelected = false;
+ protected boolean isActiveFilterOnResult = false;
+ protected int currentPage = 1;
+ protected SearchController instance = null;
+
+ private SearchEvent lastSearchEvent = null;
+
+ private SearchBorderLayoutPanel searchBorderLayoutPanel;
+
+ private DataSourceManager dataSourceManager;
+
+ /**
+ * @param eventBus
+ * @param searchBorderLayoutPanel
+ */
+ public SearchController(EventBus eventBus, SearchBorderLayoutPanel searchBorderLayoutPanel) {
+ SearchController.eventBus = eventBus; //TODO Temporary solution
+ this.searchBorderLayoutPanel = searchBorderLayoutPanel;
+ this.dataSourceManager = DataSourceManager.getInstance();
+ this.streamPagingLoader = new StreamPagingLoader(PAGE_SIZE);
+// initialize();
+ bind();
+ instance = this;
+ }
+
+ protected void switchDataSource(SpeciesCapability resultType){
+
+ setFiltersCriteria();
+
+ DataSource currentDataSource = dataSourceManager.getDataSourceByResultType(resultType);
+
+ Log.trace("current data source: " + currentDataSource.getInfo());
+
+ //SET DATASOURCE
+ this.streamPagingLoader.setDataSource(currentDataSource);
+
+ }
+
+ private void setFiltersCriteria(){
+ dataSourceManager.setActiveFilters(isActiveFilterOnResult);
+ dataSourceManager.setOnlySelected(showOnlySelected);
+ }
+
+
+ /**
+ * @return the streamPagingLoader
+ */
+ public StreamPagingLoader getStreamPagingLoader() {
+ return streamPagingLoader;
+ }
+
+ protected void bind()
+ {
+
+ eventBus.addHandler(UpdateFilterOnResultEvent.TYPE, new UpdateFilterOnResultEventHandler() {
+
+ @Override
+ public void onUpdateFilter(UpdateFilterOnResultEvent updateFilterOnResultEvent) {
+
+ ResultFilterPanelManager.getInstance().updateDataSourceFilterById(updateFilterOnResultEvent.getUpdateFilterId());
+ }
+ });
+
+ eventBus.addHandler(ActiveButtonCheckAllRowEvent.TYPE, new ActiveButtonCheckAllRowEventHandler() {
+
+ @Override
+ public void onActiveCkeckAllRow(ActiveButtonCheckAllRowEvent activeFilterCheckAllRowEvent) {
+
+ if(lastSearchEvent.getResultType().equals(SpeciesCapability.RESULTITEM))
+ searchBorderLayoutPanel.getSpeciesCenterPanel().getResultRowPanel().activeCheckAllRows(activeFilterCheckAllRowEvent.isActiveFilter());
+ else if(lastSearchEvent.getResultType().equals(SpeciesCapability.TAXONOMYITEM))
+ searchBorderLayoutPanel.getSpeciesCenterPanel().getTaxonomyRowPanel().activeCheckAllRows(activeFilterCheckAllRowEvent.isActiveFilter());
+
+ }
+ });
+
+
+ eventBus.addHandler(UpdateAllRowSelectionEvent.TYPE, new UpdateAllRowSelectionEventHandler() {
+
+ @Override
+ public void onUpdateAllRowSelection(final UpdateAllRowSelectionEvent updateAllRowSelectionEvent) {
+
+ SpeciesDiscovery.taxonomySearchService.updateRowSelections(updateAllRowSelectionEvent.getSelectionValue(), streamPagingLoader.getActiveFilterObject(), new AsyncCallback() {
+
+ @Override
+ public void onFailure(Throwable caught) {
+ Info.display("Error on selected all rows", "An error occurred on selected all rows " + caught);
+ Log.error("Error on selected all rows", "An error occurred on selected all rows " + caught);
+
+ }
+
+ @Override
+ public void onSuccess(Integer result) {
+
+ if(result.intValue()>0){
+
+ boolean selected = updateAllRowSelectionEvent.getSelectionValue();
+
+ String msgRow = result.intValue()==1?"row":"rows";
+
+ String msgSel = selected==true?"selected":"deselected";
+
+ Info.display("Info", result.intValue()+" "+msgRow+" was "+msgSel);
+
+ if(updateAllRowSelectionEvent.getSearchType().equals(SearchResultType.SPECIES_PRODUCT))
+ searchBorderLayoutPanel.getSpeciesCenterPanel().getResultRowPanel().selectAllRows(selected);
+ else if(updateAllRowSelectionEvent.getSearchType().equals(SearchResultType.TAXONOMY_ITEM))
+ searchBorderLayoutPanel.getSpeciesCenterPanel().getTaxonomyRowPanel().selectAllRows(selected);
+ }
+ }
+ });
+ }
+ });
+
+ eventBus.addHandler(ReSubmitJobEvent.TYPE, new ReSubmitJobEventHandler() {
+
+ @Override
+ public void onResubmitJob(ReSubmitJobEvent reSubmitJobEvent) {
+ if(reSubmitJobEvent.getLoadType().equals(SearchResultType.OCCURRENCE_POINT)){
+ resubmitJob(reSubmitJobEvent.getLoadType(), reSubmitJobEvent.getJobOccurrenceModel().getJobIdentifier());
+ }
+ else if(reSubmitJobEvent.getLoadType().equals(SearchResultType.TAXONOMY_ITEM)){
+ resubmitJob(reSubmitJobEvent.getLoadType(), reSubmitJobEvent.getJobTaxonomyModel().getIdentifier());
+ }
+ }
+ });
+
+ eventBus.addHandler(ReLoadListJobEvent.TYPE, new ReLoadListJobEventHandler() {
+
+ @Override
+ public void onLoadJobList(ReLoadListJobEvent loadJobListEvent) {
+
+ if(loadJobListEvent.getLoadType()!=null)
+ excecuteGetJobs(loadJobListEvent.getLoadType(), true);
+ }
+ });
+
+
+ eventBus.addHandler(SearchEvent.TYPE, new SearchEventHandler() {
+
+ @Override
+ public void onSearch(SearchEvent event) {
+ //Info.display("Event", event.toString());
+ Log.trace(event.toString());
+
+ lastSearchEvent = event;
+
+ doActiveMaskLoadingGridAndButtonSearch(true);
+
+// ResultFilterPanelManager.getInstance().setGroupByRank(event.getGroupByRank());
+
+ if(event.getType().equals(SearchType.BY_COMMON_NAME) || event.getType().equals(SearchType.BY_SCIENTIFIC_NAME))
+ search(event.getType(), event.getSearchTerm().trim(), event.getUpperBoundLongitude(), event.getUpperBoundLatitude(), event.getLowerBoundLongitude(), event.getLowerBoundLatitude(), event.getFromDate(), event.getToDate(), event.getLstDataSources(), event.getGroupByRank(), event.getResultType());
+ else
+ searchByQuery(event.getQuery());
+
+ }
+ });
+
+
+ eventBus.addHandler(CreateOccurrenceJobEvent.TYPE, new CreateOccurrenceJobEventHandler() {
+
+ @Override
+ public void onCreateSpeciesJob(CreateOccurrenceJobEvent createOccurrenceJobEvent) {
+
+ List listJobOccurrenceModel = new ArrayList();
+
+ if(createOccurrenceJobEvent.getListDataSourceFound()==null){
+ Info.display("Error on loading", "An error occurred on recover data sources, please close window and try again.");
+ }
+
+ if(!createOccurrenceJobEvent.isByDataSource()){ //ONE JOB FOR ALL DATASOURCE
+
+ String jobName = createOccurrenceJobEvent.getSearchTerm() + " occurrences from";
+
+ List dataSourceList = new ArrayList();
+
+ for (String dataSource : createOccurrenceJobEvent.getListDataSourceFound()) {
+ dataSourceList.add(new org.gcube.portlets.user.speciesdiscovery.shared.DataSource(dataSource,dataSource));
+ jobName+=" "+dataSource;
+ }
+
+ listJobOccurrenceModel.add(new JobOccurrencesModel("", jobName,createOccurrenceJobEvent.getSearchTerm(), dataSourceList, createOccurrenceJobEvent.getFileFormat(), createOccurrenceJobEvent.getSaveEnum(), createOccurrenceJobEvent.isByDataSource(), createOccurrenceJobEvent.getExpectedOccurrences()));
+
+ }else{ //IS BY DATASOURCE - ONE JOB FOR EACH DATASOURCE
+
+ for (String dataSource : createOccurrenceJobEvent.getListDataSourceFound()) {
+
+// System.out.println("########DATASOURCE FOUND: "+dataSource);
+
+ String jobName = createOccurrenceJobEvent.getSearchTerm() + " occurrences from " +dataSource;
+
+ List dataSourceList = new ArrayList();
+
+ dataSourceList.add(new org.gcube.portlets.user.speciesdiscovery.shared.DataSource(dataSource,dataSource));
+
+ listJobOccurrenceModel.add(new JobOccurrencesModel("", jobName,createOccurrenceJobEvent.getSearchTerm(), dataSourceList, createOccurrenceJobEvent.getFileFormat(), createOccurrenceJobEvent.getSaveEnum(), createOccurrenceJobEvent.isByDataSource()));
+ }
+ }
+
+ SpeciesDiscovery.taxonomySearchService.createOccurrencesJob(listJobOccurrenceModel, createOccurrenceJobEvent.getFileFormat(), createOccurrenceJobEvent.getSaveEnum(), createOccurrenceJobEvent.isByDataSource(), createOccurrenceJobEvent.getExpectedOccurrences(), new AsyncCallback>() {
+
+ @Override
+ public void onFailure(Throwable caught) {
+ Info.display("Error on loading", "An error occurred on create job, retry.");
+ Log.error("Error on loading", "An error occurred on create job, retry." +caught.getMessage());
+ caught.printStackTrace();
+
+ }
+
+ @Override
+ public void onSuccess(List result) {
+
+ if(result!=null){
+ if(result.size()>0){
+ Info.display("Species Occurrence Job", result.size() + " occurrence job was submitted");
+ excecuteGetJobs(SearchResultType.OCCURRENCE_POINT, false);
+ searchBorderLayoutPanel.getSpeciesSouthPanel().setIconOccurrenceByCounter(result.size());
+ }
+ else{
+ Info.display("Species Occurrence Job","An error occurred on submit job, retry");
+ }
+
+ }
+ }
+ });
+
+ }
+ });
+
+
+ eventBus.addHandler(ActiveMaskLoadingGrid.TYPE, new ActiveMaskLoadingGridHandler() {
+
+ @Override
+ public void onActiveMaskLoadingGrid(ActiveMaskLoadingGrid activeLoadingGrid) {
+
+ doActiveMaskLoadingGridAndButtonSearch(activeLoadingGrid.isActive());
+
+ }
+ });
+
+ eventBus.addHandler(SaveJobEvent.TYPE, new SaveJobEventHandler() {
+
+ @Override
+ public void onSaveJob(SaveJobEvent saveJobEvent) {
+
+ if(saveJobEvent.getItemType().equals(SearchResultType.TAXONOMY_ITEM)){
+ saveTaxonomyJob(saveJobEvent.getJobTaxonomyModel(), saveJobEvent.getScientificName(), saveJobEvent.getListDataSources(), saveJobEvent.getRank());
+ }
+ else if(saveJobEvent.getItemType().equals(SearchResultType.OCCURRENCE_POINT)){
+ saveOccurencesJob(saveJobEvent.getJobOccurrenceModel(), saveJobEvent.getScientificName(), saveJobEvent.getListDataSources());
+ }
+ }
+
+ });
+
+ eventBus.addHandler(CreateTaxonomyJobEvent.TYPE, new CreateTaxonomyJobEventHandler() {
+
+ @Override
+ public void onCreateSpeciesJob(CreateTaxonomyJobEvent createSpeciesJobEvent) {
+
+ switch (createSpeciesJobEvent.getJobType()) {
+
+ case BYCHILDREN:
+
+ SpeciesDiscovery.taxonomySearchService.createTaxonomyJobByChildren(createSpeciesJobEvent.getTaxonomy(), createSpeciesJobEvent.getDataSourceName(), new AsyncCallback() {
+
+ @Override
+ public void onFailure(Throwable caught) {
+ Log.error("Error on loading", "An error occurred on create job by children, retry." +caught.getMessage());
+
+ }
+
+ @Override
+ public void onSuccess(JobTaxonomyModel result) {
+
+ if(result!=null){
+ Info.display("Species Taxonomy Job","A new taxonomy job was submitted");
+ excecuteGetJobs(SearchResultType.TAXONOMY_ITEM, false);
+ searchBorderLayoutPanel.getSpeciesSouthPanel().setIconTaxonomyByCounter(1);
+ }
+ }
+ });
+
+ break;
+
+ case BYIDS:
+
+ SpeciesDiscovery.taxonomySearchService.createTaxonomyJobByIds(lastSearchEvent.getSearchTerm(), lastSearchEvent.getLstDataSources(), new AsyncCallback() {
+
+ @Override
+ public void onFailure(Throwable caught) {
+ Log.error("Error on loading", "An error occurred on create job by ids, retry." +caught.getMessage());
+
+ }
+
+ @Override
+ public void onSuccess(JobTaxonomyModel result) {
+
+ if(result!=null){
+ Info.display("Species Taxonomy Job","A new taxonomy job was submitted");
+ excecuteGetJobs(SearchResultType.TAXONOMY_ITEM, false);
+ searchBorderLayoutPanel.getSpeciesSouthPanel().setIconTaxonomyByCounter(1);
+ }
+ }
+
+ });
+
+ break;
+
+ default:
+ break;
+ }
+ }
+ });
+
+ eventBus.addHandler(CompletedLoadDataSourceEvent.TYPE, new CompletedLoadDataSourceEventHandler() {
+
+ @Override
+ public void onCompletedLoadDataSource(CompletedLoadDataSourceEvent completedLoadDataSourceEvent) {
+
+ searchBorderLayoutPanel.getSpeciesNorthPanel().unmask();
+ eventBus.fireEvent(new CapabilitySelectedEvent(searchBorderLayoutPanel.getSpeciesNorthPanel().getSelectedCapability()));
+
+ }
+ });
+
+ eventBus.addHandler(ChangeFilterClassificationOnResultEvent.TYPE, new ChangeFilterClassificationOnResultEventHandler() {
+
+ @Override
+ public void onChangeFilter(ChangeFilterClassificationOnResultEvent changeFilterClassificationOnResultEvent) {
+ ResultFilterPanelManager.getInstance().updateFilterCounterForClassification();
+
+ }
+ });
+
+ eventBus.addHandler(CapabilitySelectedEvent.TYPE, new CapabilitySelectedEventHandler() {
+
+ @Override
+ public void onCapabilitySelected(CapabilitySelectedEvent capabilitySelectedEvent) {
+
+ AdvancedSearchPanelManager.getInstance().setCurrentCapability(capabilitySelectedEvent.getCapability());
+
+ switch (capabilitySelectedEvent.getCapability()) {
+ case RESULTITEM:
+
+ searchBorderLayoutPanel.getSpeciesNorthPanel().setValueCheckValidateOcccurrences(true);
+ searchBorderLayoutPanel.getSpeciesNorthPanel().setVisibleCheckValidateOcccurrences(true);
+ break;
+
+ default:
+ searchBorderLayoutPanel.getSpeciesNorthPanel().setValueCheckValidateOcccurrences(false);
+ searchBorderLayoutPanel.getSpeciesNorthPanel().setVisibleCheckValidateOcccurrences(false);
+ };
+
+// //TODO CHANGE
+// searchBorderLayoutPanel.getSpeciesCenterPanel().setCurrentView(capabilitySelectedEvent.getCapability());
+
+
+ }
+ });
+
+ eventBus.addHandler(UpdateRowSelectionEvent.TYPE, new UpdateRowSelectionEventHandler() {
+
+ @Override
+ public void onUpdateRowSelection(final UpdateRowSelectionEvent updateRowSelectionEvent) {
+
+ Log.trace("in update..... rowid "+ updateRowSelectionEvent.getRowId());
+
+ SpeciesDiscovery.taxonomySearchService.updateRowSelection(updateRowSelectionEvent.getRowId(), updateRowSelectionEvent.getSelectionValue(), new AsyncCallback() {
+
+ @Override
+ public void onSuccess(Void result) {
+ Log.trace("rowid "+ updateRowSelectionEvent.getRowId() +" updated");
+
+ }
+
+ @Override
+ public void onFailure(Throwable caught) {
+ Info.display("Error on loading", "An error occurred on check row, please retry.");
+ Log.error("Error on loading", "An error occurred on check row, please retry." +caught.getMessage());
+ }
+ });
+ }
+ });
+
+ eventBus.addHandler(ShowOccurrencesEvent.TYPE, new ShowOccurrencesEventHandler() {
+
+ @Override
+ public void onShowOccurrences(ShowOccurrencesEvent event) {
+ openOccurenceWindow();
+ }
+ });
+
+ eventBus.addHandler(SaveItemsEvent.TYPE, new SaveItemsEventHandler() {
+
+ @Override
+ public void onSaveOccurrences(final SaveItemsEvent event) {
+
+ if(event.getItemType().equals(SearchResultType.OCCURRENCE_POINT)){
+
+ //OLD CODE***********
+ SpeciesDiscovery.taxonomySearchService.getCountOfOccurrencesBatch(new AsyncCallback() {
+
+ @Override
+ public void onFailure(Throwable caught) {
+ Log.error("Error on loading", "An error occurred on count of occurrence point, retry." +caught.getMessage());
+
+ }
+
+ @Override
+ public void onSuccess(OccurrencesStatus result) {
+
+
+ MessageDialog dialog;
+
+ if(event.getExpectedPoints()>result.getSize()){
+
+ dialog = new MessageDialog("Info", "Loading in progress", "On server are available only "+result.getSize()+" of "+event.getExpectedPoints()+" occurrence points. Do you want continue?");
+
+ dialog.getMessageBoxConfirm().addCallback(new Listener() {
+
+ public void handleEvent(MessageBoxEvent be) {
+ //IF NOT CANCELLED
+ String clickedButton = be.getButtonClicked().getItemId();
+ if(clickedButton.equals(Dialog.YES))
+ saveOccurences(event.getFileFormat(), event.getCsvType());
+ }
+ });
+ }
+
+ else
+ saveOccurences(event.getFileFormat(), event.getCsvType());
+ }
+ });
+
+ //END OLD CODE***********
+ saveOccurences(event.getFileFormat(), event.getCsvType());
+
+ }
+
+ else
+ if(event.getItemType().equals(SearchResultType.TAXONOMY_ITEM))
+ saveTaxonomy(event.getFileFormat());
+
+
+ }
+ });
+
+ eventBus.addHandler(ShowOccurrencesMapEvent.TYPE, new ShowOccurrencesMapEventHandler() {
+
+ @Override
+ public void onShowOccurrencesMap(final ShowOccurrencesMapEvent event) {
+
+
+ SpeciesDiscovery.taxonomySearchService.getCountOfOccurrencesBatch(new AsyncCallback() {
+
+ @Override
+ public void onFailure(Throwable caught) {
+ Log.error("Error on loading", "An error occurred on count of occurrence point, retry." +caught.getMessage());
+
+ }
+
+ @Override
+ public void onSuccess(OccurrencesStatus result) {
+
+ MessageDialog dialog;
+
+ if(event.getExpectedPoints()>result.getSize()){
+
+ dialog = new MessageDialog("Info", "Loading in progress", "On server are available only "+result.getSize()+" of "+event.getExpectedPoints()+" occurrences points. Do you want continue?");
+
+ dialog.getMessageBoxConfirm().addCallback(new Listener() {
+
+ public void handleEvent(MessageBoxEvent be) {
+ //IF NOT CANCELLED
+ String clickedButton = be.getButtonClicked().getItemId();
+ if(clickedButton.equals(Dialog.YES))
+ showOccurrencesMap();
+ }
+ });
+ }
+
+ else
+ showOccurrencesMap();
+ }
+
+ });
+ }
+ });
+
+ eventBus.addHandler(ShowOnlySelectedRowEvent.TYPE, new ShowOnlySelectedRowEventHandler() {
+
+ @Override
+ public void onShowOnlySelectedRow(ShowOnlySelectedRowEvent event) {
+
+ showFilterResults(event.isOnlySelected());
+ }
+ });
+
+
+ eventBus.addHandler(LoadDataSourceEvent.TYPE, new LoadDataSourceEventHandler() {
+
+ @Override
+ public void onLoadDataSource(LoadDataSourceEvent loadDataSourceEvent) {
+
+ searchBorderLayoutPanel.getSpeciesNorthPanel().mask("Loading data sources...", ConstantsSpeciesDiscovery.LOADINGSTYLE);
+ loadDataSourceFromService();
+
+ }
+ });
+
+ eventBus.addHandler(ViewDetailsOfSelectedEvent.TYPE, new ViewDetailsOfSelectedEventHandler() {
+
+ @Override
+ public void onViewDetails(ViewDetailsOfSelectedEvent viewDetailsOfSelectedEvent) {
+
+ final ViewDetailsWindow view = new ViewDetailsWindow(instance, lastSearchEvent.getResultType(), lastSearchEvent.getType());
+
+ //IF SELECTED CAPABILITY IS OCCURENCES - IS CALL LOAD OCCURENCES METHOD
+ if(lastSearchEvent.getResultType().getName().compareTo(SpeciesCapability.RESULTITEM.getName())==0){
+
+ Scheduler.get().scheduleDeferred(new ScheduledCommand() {
+
+ @Override
+ public void execute() {
+ view.loadOccurences();
+ }
+ });
+ }
+ }
+ });
+
+ eventBus.addHandler(ActiveFilterOnResultEvent.TYPE, new ActiveFilterOnResultEventHandler() {
+
+ @Override
+ public void onActiveFilter(ActiveFilterOnResultEvent activeFilterOnResultEvent) {
+
+// for(Integer id: activeFilterOnResultEvent.getActiveFilterObject().getListByClassification()){
+// Log.trace("current id "+ id + " size " +activeFilterOnResultEvent.getActiveFilterObject().getListByClassification().size());
+// }
+ doActiveMaskLoadingGridAndButtonSearch(true);
+
+ activeFilterOnResult(true);
+ setOnlySelected(false);
+ updateOnlySelectedOnManager(false);
+
+ ResultFilter filterObj = activeFilterOnResultEvent.getActiveFilterObject();
+ streamPagingLoader.setActiveFilterObject(filterObj);
+ streamPagingLoader.reloadPageForFiltering(filterObj.getNumberOfData(), true);
+
+ searchBorderLayoutPanel.getSpeciesCenterPanel().setFilterActive(true, filterObj.getFilterValue());
+
+ }
+ });
+
+
+ eventBus.addHandler(SetCommonNamesEvent.TYPE, new SetCommonNamesEventHandler() {
+
+ @Override
+ public void onSetCommonNames(SetCommonNamesEvent setCommonNamesEvent) {
+
+ final BaseModelData data = setCommonNamesEvent.getBaseModelData();
+
+ final ResultRow row = (ResultRow) data.get(SpeciesGridFields.ROW.getId());
+
+ SpeciesDiscovery.taxonomySearchService.loadListCommonNameByRowId(""+row.getId(), new AsyncCallback>() {
+
+ @Override
+ public void onFailure(Throwable caught) {
+// Window.alert(caught.getMessage());
+ Info.display("Error on loading", "An error occurred on loading Common Names, retry.");
+ Log.error("Error in SetCommonNamesEvent: "+caught.getMessage());
+
+ }
+
+ @Override
+ public void onSuccess(ArrayListresult) {
+
+ if(result!=null){
+
+ String matchingTaxonName = data.get(SpeciesGridFields.MATCHING_NAME.getId());
+ String matchingAccordionTo = data.get(SpeciesGridFields.MATCHING_AUTHOR.getId());
+ String matchingCredits = data.get(SpeciesGridFields.MATCHING_CREDITS.getId());
+
+ String commonNames = getCommonNamesHTML(matchingTaxonName, matchingAccordionTo, matchingCredits, result);
+ data.set(SpeciesGridFields.COMMON_NAMES.getId(), commonNames);
+ }
+
+ row.setCommonNames(result);
+ }
+ });
+
+ }
+ });
+
+ eventBus.addHandler(DisableFilterEvent.TYPE, new DisableFilterEventHandler() {
+
+ @Override
+ public void onDisableFilter(DisableFilterEvent disableFilterEvent) {
+
+ doActiveMaskLoadingGridAndButtonSearch(true);
+ streamPagingLoader.reloadPageWithoutFiltering();
+ disableFilters();
+// updateOnlySelectedOnManager();
+ }
+ });
+
+ }
+
+ public void resubmitJob(SearchResultType resultType, String jobIdentifier){
+
+ if(jobIdentifier!=null){
+ if(resultType.equals(SearchResultType.OCCURRENCE_POINT)){
+
+ SpeciesDiscovery.taxonomySearchService.resubmitOccurrencesJob(jobIdentifier, new AsyncCallback>() {
+
+ @Override
+ public void onFailure(Throwable caught) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void onSuccess(List result) {
+
+ if(result!=null && result.size()>0)
+ excecuteGetJobs(SearchResultType.OCCURRENCE_POINT, false);
+
+ }
+ });
+ }
+
+ else if(resultType.equals(SearchResultType.TAXONOMY_ITEM)){
+
+ SpeciesDiscovery.taxonomySearchService.resubmitTaxonomyJob(jobIdentifier, new AsyncCallback() {
+
+ @Override
+ public void onFailure(Throwable caught) {
+ Info.display("Error on resubmit", "An error occurred on resubmit job, retry.");
+ Log.error("Error on resubmit", "An error occurred on resubmit job, retry." +caught.getMessage());
+ caught.printStackTrace();
+
+ }
+
+ @Override
+ public void onSuccess(JobTaxonomyModel result) {
+
+ if(result!=null)
+ excecuteGetJobs(SearchResultType.TAXONOMY_ITEM, false);
+
+ }
+ });
+
+ }
+ }
+ else
+ Info.display("Error", "job identifier is wrong");
+
+ }
+
+ protected void activeFilterOnResult(boolean bool){
+ isActiveFilterOnResult = bool;
+ dataSourceManager.setActiveFilters(isActiveFilterOnResult);
+ }
+
+ protected void disableFilters(){
+
+ activeFilterOnResult(false);
+ streamPagingLoader.resetFilters();
+ searchBorderLayoutPanel.getSpeciesCenterPanel().setFilterActive(false, "");
+ }
+
+
+ protected void loadDataSourceFromService() {
+
+ SpeciesDiscovery.taxonomySearchService.loadDataSourceList(new AsyncCallback>() {
+
+ @Override
+ public void onFailure(Throwable caught) {
+ Info.display("Error on loading", "An error occurred on loading Data Source, retry.");
+// Log.error("Error on loading", "An error occurred on loading Data Source, retry. " +caught.getMessage());
+ Log.error("Error on loading", "An error occurred on loading Data Source, retry. " +caught);
+
+ Log.error("Error on loading", "An error occurred on loading Data Source, retry. " +caught.getCause());
+ searchBorderLayoutPanel.getSpeciesNorthPanel().unmask();
+ }
+
+ @Override
+ public void onSuccess(List result) {
+
+ if(result!=null && result.size()>0)
+ AdvancedSearchPanelManager.getInstance().loadDataSource(result);
+ else
+ Info.display("Error", "No data sources are loaded, retry");
+// ResultFilterPanelManager.getInstance().loadDataSource(result);
+
+ eventBus.fireEvent(new CompletedLoadDataSourceEvent());
+ }
+
+ });
+ }
+
+ protected void doActiveMaskLoadingGridAndButtonSearch(boolean mask) {
+
+ searchBorderLayoutPanel.getSpeciesCenterPanel().setMaskGridPanel(mask);
+
+ searchBorderLayoutPanel.getSpeciesNorthPanel().activeButtonSearch(!mask);
+ }
+
+ protected void showFilterResults(boolean onlySelected)
+ {
+ Log.trace("showFilterResults ******* onlySelected "+onlySelected);
+
+ setOnlySelected(onlySelected);
+ updateOnlySelectedOnManager(onlySelected);
+
+ streamPagingLoader.reset();
+ streamPagingLoader.pollingState();
+
+ if (onlySelected) {
+ disableFilters();
+ streamPagingLoader.setPage(0);
+ } else {
+ Log.trace("currentPage: "+currentPage);
+ currentPage = streamPagingLoader.getCurrentPage();
+ streamPagingLoader.setPage(currentPage);
+ }
+ }
+
+ public void openOccurenceWindow() {
+ final OccurrencesWindow occurencesWindow = new OccurrencesWindow();
+ occurencesWindow.show();
+
+ Scheduler.get().scheduleDeferred(new ScheduledCommand() {
+
+ @Override
+ public void execute() {
+ occurencesWindow.loadOccurences();
+ }
+ });
+
+ }
+
+ public void saveOccurences(final SaveFileFormat fileFormat, final OccurrencesSaveEnum typeCSV) {
+
+ String fileName = "Occurrences";
+
+ switch (fileFormat) {
+ case CSV: fileName += ".csv"; break;
+ case DARWIN_CORE: fileName += ".xml"; break;
+ }
+
+ WorkspaceLightTreeSavePopup popup = new WorkspaceLightTreeSavePopup("Select where to save the Occurrence points", true, fileName);
+ popup.setModal(false);
+ popup.setSelectableTypes(ItemType.FOLDER, ItemType.ROOT);
+ popup.center();
+ popup.addPopupHandler(new PopupHandler() {
+
+ public void onPopup(PopupEvent event) {
+ if (!event.isCanceled()){
+ org.gcube.portlets.user.workspace.lighttree.client.Item destinationFolder = event.getSelectedItem();
+ final String name = event.getName();
+
+ Info.display("Saving in progress", "...");
+
+ SpeciesDiscovery.taxonomySearchService.saveSelectedOccurrencePoints(destinationFolder.getId(), name, fileFormat, typeCSV, new AsyncCallback() {
+
+ @Override
+ public void onSuccess(Void result) {
+ Info.display("File saved", "The "+name+" file has been saved in the workspace.");
+ }
+
+ @Override
+ public void onFailure(Throwable caught) {
+ Info.display("Error saving the file", "An error occurred saving the file, retry.");
+ Log.error("Error saving the file", "An error occurred saving the file, retry." +caught.getMessage());
+ }
+ });
+
+ }
+ }
+
+ });
+ popup.addDataLoadHandler(new DataLoadHandler() {
+
+ @Override
+ public void onDataLoad(DataLoadEvent event) {
+ if (event.isFailed())GWT.log("Workspace loading failure", event.getCaught());
+ }
+ });
+ popup.getElement().getStyle().setZIndex(10001);
+ popup.show();
+
+ }
+
+
+
+ public void saveTaxonomyJob(final JobTaxonomyModel jobTaxonomyModel, final String scientificName, final List listDataSources, String rank) {
+
+ // IN THIS CASE THERE IS ONE DATASOURCE
+ final String dataSourceName = listDataSources.get(0)!=null?listDataSources.get(0).getName():"no datasource";
+
+ String fileName = "DWCA " +rank + " -"+scientificName +"- from "+dataSourceName+".zip";
+
+ WorkspaceLightTreeSavePopup popup = new WorkspaceLightTreeSavePopup("Select where to save the Job", true, fileName);
+ popup.setModal(false);
+ popup.setSelectableTypes(ItemType.FOLDER, ItemType.ROOT);
+ popup.center();
+ popup.addPopupHandler(new PopupHandler() {
+
+ public void onPopup(PopupEvent event) {
+ if (!event.isCanceled()){
+ org.gcube.portlets.user.workspace.lighttree.client.Item destinationFolder = event.getSelectedItem();
+ final String name = event.getName();
+
+ Info.display("Saving in progress", "...");
+
+ SpeciesDiscovery.taxonomySearchService.saveTaxonomyJob(jobTaxonomyModel.getIdentifier(), destinationFolder.getId(), name, scientificName, dataSourceName, new AsyncCallback() {
+
+ @Override
+ public void onSuccess(Boolean result) {
+
+ if(result){
+ Info.display("File saved", "The "+name+" file has been saved in the workspace.");
+
+ changeStatusJob(SearchResultType.TAXONOMY_ITEM, jobTaxonomyModel.getIdentifier(), DownloadState.SAVED);
+ }
+ }
+
+ @Override
+ public void onFailure(Throwable caught) {
+ Info.display("Error saving the file", "An error occurred saving the file, retry.");
+ Log.error("Error saving the file", "An error occurred saving the file, retry." +caught.getMessage());
+ }
+ });
+ }
+ }
+
+ });
+
+ popup.addDataLoadHandler(new DataLoadHandler() {
+
+ @Override
+ public void onDataLoad(DataLoadEvent event) {
+ if (event.isFailed())GWT.log("Workspace loading failure", event.getCaught());
+ }
+ });
+ popup.show();
+
+
+ }
+
+
+ private void saveOccurencesJob(final JobOccurrencesModel jobOccurrencesModel,final String scientificName, List dataSourceList) {
+
+ String dataSourceName = "";
+
+ for (org.gcube.portlets.user.speciesdiscovery.shared.DataSource dataSource : dataSourceList) {
+ dataSourceName+= dataSource.getName() + "-";
+ }
+
+ //remove last - char
+ dataSourceName = dataSourceName.substring(0, dataSourceName.lastIndexOf("-"));
+
+ String extension = null;
+
+ switch (jobOccurrencesModel.getFileFormat()) {
+ case CSV: {
+ extension = "csv";
+ } break;
+ case DARWIN_CORE:{
+ extension = "xml";
+ } break;
+ }
+
+ String fileName = "Occurrences results of "+scientificName +"- from "+dataSourceName+"."+extension;
+
+ WorkspaceLightTreeSavePopup popup = new WorkspaceLightTreeSavePopup("Select where to save the Occurrence points", true, fileName);
+ popup.setModal(false);
+ popup.setSelectableTypes(ItemType.FOLDER, ItemType.ROOT);
+ popup.center();
+
+ final String dataSources = dataSourceName;
+
+ popup.addPopupHandler(new PopupHandler() {
+
+ public void onPopup(PopupEvent event) {
+ if (!event.isCanceled()){
+ org.gcube.portlets.user.workspace.lighttree.client.Item destinationFolder = event.getSelectedItem();
+ final String name = event.getName();
+
+ Info.display("Saving in progress", "...");
+
+ SpeciesDiscovery.taxonomySearchService.saveOccurrenceJob(jobOccurrencesModel, destinationFolder.getId(), name, scientificName, dataSources, new AsyncCallback() {
+
+ @Override
+ public void onSuccess(Boolean result) {
+
+ if(result){
+ Info.display("File saved", "The "+name+" file has been saved in the workspace.");
+ changeStatusJob(SearchResultType.OCCURRENCE_POINT, jobOccurrencesModel.getJobIdentifier(), DownloadState.SAVED);
+ }
+ }
+
+ @Override
+ public void onFailure(Throwable caught) {
+ Info.display("Error saving the file", "An error occurred saving the file, retry.");
+ Log.error("Error saving the file", "An error occurred saving the file, retry." +caught.getMessage());
+ }
+ });
+ }
+ }
+
+ });
+
+ popup.addDataLoadHandler(new DataLoadHandler() {
+
+ @Override
+ public void onDataLoad(DataLoadEvent event) {
+ if (event.isFailed())GWT.log("Workspace loading failure", event.getCaught());
+ }
+ });
+ popup.show();
+
+ }
+
+
+ public void changeStatusJob(SearchResultType jobType, String jobId, DownloadState state){
+
+ if(jobType.equals(SearchResultType.OCCURRENCE_POINT)){
+ SpeciesDiscovery.taxonomySearchService.changeStatusOccurrenceJob(jobId, state, new AsyncCallback() {
+
+ @Override
+ public void onFailure(Throwable caught) {
+ Log.error("Error on change status", "An error occurred on change status, retry." +caught.getMessage());
+
+ }
+
+ @Override
+ public void onSuccess(Boolean result) {
+ if(result)
+ excecuteGetJobs(SearchResultType.OCCURRENCE_POINT, true);
+
+ }
+ });
+ }else if(jobType.equals(SearchResultType.TAXONOMY_ITEM)){
+ SpeciesDiscovery.taxonomySearchService.changeStatusTaxonomyJob(jobId, state, new AsyncCallback() {
+
+ @Override
+ public void onFailure(Throwable caught) {
+ Log.error("Error on change status", "An error occurred on change status, retry." +caught.getMessage());
+
+ }
+
+ @Override
+ public void onSuccess(Boolean result) {
+ if(result)
+ excecuteGetJobs(SearchResultType.TAXONOMY_ITEM, true);
+
+ }
+ });
+ }
+ }
+
+
+ public void saveTaxonomy(final SaveFileFormat fileFormat) {
+
+ String fileName = "Taxonomy";
+
+ switch (fileFormat) {
+ case DARWIN_CORE_ARCHIVE: fileName += ".zip"; break;
+ }
+
+ WorkspaceLightTreeSavePopup popup = new WorkspaceLightTreeSavePopup("Select where to save the Taxonomy", true, fileName);
+ popup.setModal(false);
+ popup.setSelectableTypes(ItemType.FOLDER, ItemType.ROOT);
+ popup.center();
+
+ popup.addPopupHandler(new PopupHandler() {
+
+ public void onPopup(PopupEvent event) {
+ if (!event.isCanceled()){
+ org.gcube.portlets.user.workspace.lighttree.client.Item destinationFolder = event.getSelectedItem();
+ final String name = event.getName();
+
+ Info.display("Saving in progress", "...");
+
+ SpeciesDiscovery.taxonomySearchService.saveSelectedTaxonomyPoints(destinationFolder.getId(), name, fileFormat, new AsyncCallback() {
+
+ @Override
+ public void onSuccess(Void result) {
+ Info.display("File saved", "The "+name+" file has been saved in the workspace.");
+ }
+
+ @Override
+ public void onFailure(Throwable caught) {
+ Info.display("Error saving the file", "An error occurred saving the file, retry.");
+ Log.error("Error saving the file", "An error occurred saving the file, retry." +caught.getMessage());
+ }
+ });
+
+ }
+ }
+
+ });
+ popup.addDataLoadHandler(new DataLoadHandler() {
+
+ @Override
+ public void onDataLoad(DataLoadEvent event) {
+ if (event.isFailed())GWT.log("Workspace loading failure", event.getCaught());
+ }
+ });
+ popup.show();
+
+ }
+
+ public void showOccurrencesMap()
+ {
+ final MessageBox progress = MessageBox.wait("Generating map", "Calculating occurrence points", "generating...");
+
+ SpeciesDiscovery.taxonomySearchService.generateMapFromSelectedOccurrencePoints(new AsyncCallback() {
+
+ @Override
+ public void onFailure(Throwable caught) {
+ progress.close();
+ Info.display("Error generating the map", "An error occurred generating the map, retry");
+ Log.error("Error on loading", "An error occurred on edit listner, retry." +caught.getMessage());
+
+ }
+
+ @Override
+ public void onSuccess(String layerName) {
+ progress.close();
+ showMap(layerName);
+ }
+ });
+ }
+
+ public void showMap(String layerName)
+ {
+
+ Log.trace("show Map layer name returned: "+layerName);
+
+ GisViewerParameters gisViewerParameters = new GisViewerParameters();
+ List layers = new ArrayList();
+
+ layers.add(ConstantsSpeciesDiscovery.ENVIRONMENTS);
+// layers.add(ConstantsSpeciesDiscovery.WORLD_BORDERS);
+ layers.add(ConstantsSpeciesDiscovery.SST_AN_MEAN);
+ layers.add(ConstantsSpeciesDiscovery.PRIM_PROD_MEAN);
+ layers.add(ConstantsSpeciesDiscovery.SALINITY_MEAN);
+ layers.add(ConstantsSpeciesDiscovery.EEZALL);
+ layers.add(ConstantsSpeciesDiscovery.FAOAREA);
+ layers.add(ConstantsSpeciesDiscovery.LME);
+ layers.add(ConstantsSpeciesDiscovery.DEPTH_MEAN_ANNUAL);
+ layers.add(layerName);
+
+ gisViewerParameters.setOpeningLayers(layers);
+ GCubeGisViewer gisViewer = new GCubeGisViewer(gisViewerParameters);
+
+ gisViewer.addSaveHandler(new SaveHandler() {
+
+ @Override
+ public void onSaveSuccess(SaveEvent event) {
+ Log.trace("onSaveSuccess "+event);
+ }
+
+ @Override
+ public void onSaveFailure(SaveEvent event) {
+ Log.trace("onSaveFailure "+event);
+ }
+
+ @Override
+ public void onSave(SaveEvent event) {
+ Log.trace("onSave "+event);
+ }
+ });
+
+ gisViewer.setMaskOnSaveEvents();
+
+ gisViewer.show();
+ }
+
+
+ private void setOnlySelected(boolean b){
+
+ showOnlySelected = b;
+ searchBorderLayoutPanel.getSpeciesCenterPanel().activeBtnShowOnlySelected(b);
+
+ }
+
+
+ private void updateOnlySelectedOnManager(boolean showOnlySelected){
+ dataSourceManager.setOnlySelected(showOnlySelected);
+ }
+
+ public void reset(){
+ streamPagingLoader.reset();
+ streamPagingLoader.setActiveFilterObject(null);
+// isActiveFilterOnResult = false;
+ activeFilterOnResult(false);
+ }
+
+ private void switchView(SpeciesCapability resultType) {
+ Log.trace("switchView ... ");
+ searchBorderLayoutPanel.getSpeciesCenterPanel().updateCurrentGridView(resultType);
+ }
+
+ private AsyncCallback initSearch(){
+
+ reset();
+ searchBorderLayoutPanel.getSpeciesCenterPanel().setFilterActive(false, "");
+ setOnlySelected(false);
+
+ return new AsyncCallback() {
+
+ @Override
+ public void onSuccess(Void voi) {
+ streamPagingLoader.startLoading(false);
+ }
+
+ @Override
+ public void onFailure(Throwable caught) {
+ Info.display("Error", "An error occurred during the search");
+ Log.error("Error during the search", caught.getMessage());
+ reset();
+ streamPagingLoader.resetFilters();
+ }
+ };
+ }
+
+ private AsyncCallback initSearchByQuery(){
+
+ return new AsyncCallback() {
+
+ @Override
+ public void onSuccess(SearchResultType resultType) {
+
+ SpeciesCapability capability = Util.getCapabilityFromResultType(resultType);
+ setDataSourceType(capability);
+ switchView(capability);
+ searchBorderLayoutPanel.getSpeciesCenterPanel().activeToolBarButtons(true);
+// eventBus.fireEvent(new SearchStartedEvent());
+ streamPagingLoader.startLoading(false);
+ }
+
+ @Override
+ public void onFailure(Throwable caught) {
+ Info.display("Error", "An error occurred during the search");
+ Log.error("Error during the search", caught.getMessage());
+ reset();
+ streamPagingLoader.resetFilters();
+ }
+ };
+ }
+
+ protected void searchByQuery(String query) {
+
+ Log.trace("IN SEARCH BY QUERY..." + query);
+
+ AsyncCallback callback = initSearchByQuery();
+
+ reset();
+ searchBorderLayoutPanel.getSpeciesCenterPanel().setFilterActive(false, "");
+ setOnlySelected(false);
+
+
+ SpeciesDiscovery.taxonomySearchService.searchByQuery(query, callback);
+
+ eventBus.fireEvent(new SearchStartedEvent());
+
+
+ }
+
+ protected void search(SearchType type, String searchTerm, Number upperBoundLongitude, Number upperBoundLatitude, Number lowerBoundLongitude, Number lowerBoundLatitude, Date fromDate, Date toDate, List listDataSources, String groupRank, SpeciesCapability resultType)
+ {
+
+ Log.trace("IN SEARCH..............");
+
+ AsyncCallback callback = initSearch();
+
+ Coordinate upperCoordinate = (upperBoundLatitude!=null && upperBoundLongitude!=null)?new Coordinate(upperBoundLatitude.floatValue(), upperBoundLongitude.floatValue()):null;
+ Coordinate lowerCoordinate = (lowerBoundLatitude!=null && lowerBoundLongitude!=null)?new Coordinate(lowerBoundLatitude.floatValue(), lowerBoundLongitude.floatValue()):null;
+
+ SearchFilters filters = new SearchFilters(upperCoordinate, lowerCoordinate, fromDate, toDate, listDataSources, groupRank, resultType);
+
+ Log.trace("**********result type: " + filters.getResultType());
+
+ switch (type) {
+
+ case BY_SCIENTIFIC_NAME:
+ SpeciesDiscovery.taxonomySearchService.searchByScientificName(searchTerm, filters, callback);
+ break;
+ case BY_COMMON_NAME:
+ SpeciesDiscovery.taxonomySearchService.searchByCommonName(searchTerm, filters, callback);
+ break;
+ }
+
+ Log.trace("resultType "+ resultType);
+
+ setDataSourceType(resultType);
+ switchView(resultType);
+ searchBorderLayoutPanel.getSpeciesCenterPanel().activeToolBarButtons(true);
+
+
+ eventBus.fireEvent(new SearchStartedEvent());
+
+ }
+
+
+ private void setDataSourceType(SpeciesCapability resultType) {
+ switchDataSource(resultType);
+ }
+
+ protected String getCommonNamesHTML(String scientificName, String author, String credits, List commonNames)
+ {
+ StringBuilder html = new StringBuilder("");
+
+ html.append(scientificName);
+ html.append("
");
+
+ if (commonNames.size()>0) html.append("aka : ");
+
+ html.append("");
+
+ Set insertedLanguages = new HashSet();
+
+ for (CommonName commonName:commonNames) {
+ if (insertedLanguages.contains(commonName.getLanguage())) continue;
+ else insertedLanguages.add(commonName.getLanguage());
+
+ html.append("");
+ html.append(commonName.getLanguage());
+ html.append(": | ");
+ html.append(commonName.getName());
+ html.append(" |
");
+ }
+
+ html.append("
");
+ html.append("Inserted by: | ");
+ html.append(author);
+ html.append(" |
");
+ html.append("Credits: | ");
+ html.append(credits);
+ html.append(" |
");
+ html.append("
");
+
+ html.append("
");
+
+ return html.toString();
+ }
+
+
+ public EventBus getEventBus() {
+ return eventBus;
+ }
+
+ public SearchEvent getLastSearchEvent() {
+ return lastSearchEvent;
+ }
+
+ public static void excecuteGetJobs(SearchResultType type, final boolean resetStructures){
+
+
+ System.out.println("New rpc get list SpeciesJobs......." + type);
+
+ if(type.equals(SearchResultType.TAXONOMY_ITEM)){
+
+ if(resetStructures)
+ TaxonomyJobSpeciesPanel.getInstance(eventBus).getGridJob().mask("Loading", ConstantsSpeciesDiscovery.LOADINGSTYLE);
+
+ SpeciesDiscovery.taxonomySearchService.getListTaxonomyJobs(new AsyncCallback>() {
+
+ @Override
+ public void onFailure(Throwable caught) {
+
+ }
+
+ @Override
+ public void onSuccess(List result) {
+
+ if(resetStructures)
+ TaxonomyJobSpeciesPanel.getInstance(eventBus).getGridJob().unmask();
+
+ if(result.size()>0){
+
+ if(resetStructures)
+ TaxonomyJobSpeciesPanel.getInstance(eventBus).resetStructures();
+
+ TaxonomyJobSpeciesPanel.getInstance(eventBus).addListJob(result);
+ }
+
+ }
+
+ });
+ }
+
+ else if(type.equals(SearchResultType.OCCURRENCE_POINT)){
+
+ if(resetStructures)
+ OccurrenceJobSpeciesPanel.getInstance(eventBus).getGridJob().mask("Loading", ConstantsSpeciesDiscovery.LOADINGSTYLE);
+
+ SpeciesDiscovery.taxonomySearchService.getListOccurrencesJob(new AsyncCallback>() {
+
+ @Override
+ public void onFailure(Throwable caught) {
+
+ }
+
+ @Override
+ public void onSuccess(List result) {
+
+ if(resetStructures)
+ OccurrenceJobSpeciesPanel.getInstance(eventBus).getGridJob().unmask();
+
+ if(result.size()>0){
+
+ if(resetStructures)
+ OccurrenceJobSpeciesPanel.getInstance(eventBus).resetStructures();
+
+ OccurrenceJobSpeciesPanel.getInstance(eventBus).addListJob(result);
+ }
+
+ }
+
+ });
+ }
+
+ }
+
+}
diff --git a/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/SpeciesDiscovery.java b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/SpeciesDiscovery.java
new file mode 100644
index 0000000..c467088
--- /dev/null
+++ b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/SpeciesDiscovery.java
@@ -0,0 +1,95 @@
+package org.gcube.portlets.user.speciesdiscovery.client;
+
+import org.gcube.portlets.user.speciesdiscovery.client.rpc.TaxonomySearchService;
+import org.gcube.portlets.user.speciesdiscovery.client.rpc.TaxonomySearchServiceAsync;
+
+import com.allen_sauer.gwt.log.client.Log;
+import com.extjs.gxt.ui.client.widget.ContentPanel;
+import com.google.gwt.core.client.EntryPoint;
+import com.google.gwt.core.client.GWT;
+import com.google.gwt.core.client.Scheduler;
+import com.google.gwt.core.client.Scheduler.ScheduledCommand;
+import com.google.gwt.event.logical.shared.ResizeEvent;
+import com.google.gwt.event.logical.shared.ResizeHandler;
+import com.google.gwt.user.client.Window;
+import com.google.gwt.user.client.ui.RootPanel;
+
+/**
+ * Entry point classes define onModuleLoad()
.
+ */
+
+public class SpeciesDiscovery implements EntryPoint {
+
+ public static final String SPECIES_DISCOVERY_DIV = "SpeciesDiscovery";
+
+ public static TaxonomySearchServiceAsync taxonomySearchService = GWT.create(TaxonomySearchService.class);
+
+ protected ContentPanel mainPanel;
+
+ /**
+ * This is the entry point method.
+ */
+ public void onModuleLoad() {
+
+ Log.setUncaughtExceptionHandler();
+
+ Scheduler.get().scheduleDeferred(new ScheduledCommand() {
+
+ @Override
+ public void execute() {
+ onModuleLoad2();
+
+ Window.addResizeHandler(new ResizeHandler() {
+
+ @Override
+ public void onResize(ResizeEvent event) {
+ updateSize();
+
+ }
+ });
+
+ }
+ });
+ }
+
+ public void onModuleLoad2() {
+
+ RootPanel root = RootPanel.get(SPECIES_DISCOVERY_DIV);
+ createSearchPanel();
+
+ if (root!=null){
+ GWT.log("SPECIES_DISCOVERY_DIV div found, we are on portal");
+ updateSize();
+ root.add(mainPanel);
+
+ } else{
+ GWT.log("SPECIES_DISCOVERY_DIV div not found, we are out of the portal");
+ //mainPanel.setWidth("100%");
+ mainPanel.setHeight(600);
+// mainPanel.setWidth(930);
+ RootPanel.get().add(mainPanel);
+ }
+
+
+ }
+
+ protected void createSearchPanel()
+ {
+ mainPanel = SearchBorderLayoutPanel.getInstance();
+ }
+
+ public void updateSize() {
+ GWT.log("Resizing");
+ RootPanel discovery = RootPanel.get(SPECIES_DISCOVERY_DIV);
+
+ int topBorder = discovery.getAbsoluteTop();
+ int leftBorder = discovery.getAbsoluteLeft();
+
+ int rightScrollBar = 17;
+ int rootHeight = Window.getClientHeight() - topBorder - 34;
+ int rootWidth = Window.getClientWidth() - 2* leftBorder - rightScrollBar;
+
+ GWT.log("new size "+rootWidth+"x"+rootHeight);
+ mainPanel.setPixelSize(rootWidth, rootHeight);
+ }
+}
diff --git a/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/SpeciesResultFilterAccordionPanel.java b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/SpeciesResultFilterAccordionPanel.java
new file mode 100644
index 0000000..2cae4e7
--- /dev/null
+++ b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/SpeciesResultFilterAccordionPanel.java
@@ -0,0 +1,41 @@
+package org.gcube.portlets.user.speciesdiscovery.client;
+
+import org.gcube.portlets.user.speciesdiscovery.client.filterresult.ResultFilterPanelManager;
+import org.gcube.portlets.user.speciesdiscovery.client.util.stream.StreamPagingLoader;
+
+import com.extjs.gxt.ui.client.widget.ContentPanel;
+import com.extjs.gxt.ui.client.widget.layout.AccordionLayout;
+import com.extjs.gxt.ui.client.widget.layout.FitLayout;
+import com.google.gwt.event.shared.EventBus;
+
+/**
+ * @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
+ *
+ */
+public class SpeciesResultFilterAccordionPanel extends ContentPanel {
+
+ public final String headerFilterResultPanel = "Filter your results";
+ private ResultFilterPanelManager resultFilterManager = ResultFilterPanelManager.getInstance();
+
+ public SpeciesResultFilterAccordionPanel(EventBus eventBus, StreamPagingLoader streamPagingLoader) {
+ init();
+ resultFilterManager.bind(streamPagingLoader);
+ resultFilterManager.setEventBus(eventBus);
+ }
+
+ private void init() {
+ setHeaderVisible(true);
+ setHeading(headerFilterResultPanel);
+
+ setBodyBorder(false);
+ setLayout(new AccordionLayout());
+ // setIcon(Resources.ICONS.accordion());
+
+ for (ContentPanel panel : resultFilterManager.getListResultFilterPanel()) {
+ panel.setAnimCollapse(false);
+ panel.setLayout(new FitLayout());
+ add(panel);
+ }
+ }
+
+}
diff --git a/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/SpeciesResultsPanelCardLayout.java b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/SpeciesResultsPanelCardLayout.java
new file mode 100644
index 0000000..55a00d3
--- /dev/null
+++ b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/SpeciesResultsPanelCardLayout.java
@@ -0,0 +1,147 @@
+package org.gcube.portlets.user.speciesdiscovery.client;
+
+import org.gcube.portlets.user.speciesdiscovery.client.gridview.ResultRowResultsPanel;
+import org.gcube.portlets.user.speciesdiscovery.client.gridview.TaxonomyRowResultsPanel;
+import org.gcube.portlets.user.speciesdiscovery.client.util.stream.StreamPagingLoader;
+import org.gcube.portlets.user.speciesdiscovery.shared.SpeciesCapability;
+
+import com.extjs.gxt.ui.client.widget.ContentPanel;
+import com.extjs.gxt.ui.client.widget.LayoutContainer;
+import com.extjs.gxt.ui.client.widget.layout.CardLayout;
+import com.extjs.gxt.ui.client.widget.layout.FitLayout;
+import com.google.gwt.event.shared.EventBus;
+import com.google.gwt.user.client.Element;
+
+/**
+ *
+ * @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
+ *
+ */
+public class SpeciesResultsPanelCardLayout extends LayoutContainer {
+
+ private CardLayout cardLayout = new CardLayout();
+ private static SpeciesResultsPanelCardLayout instance;
+ private ContentPanel activePanel = null;
+ private ResultRowResultsPanel resultRowPanel;
+ private TaxonomyRowResultsPanel taxonomyRowPanel;
+ private SpeciesCapability currentSelectedCapability;
+
+
+ public static SpeciesResultsPanelCardLayout getInstance() {
+ return instance;
+ }
+
+
+ public SpeciesResultsPanelCardLayout(final EventBus eventBus, StreamPagingLoader loader, SearchController searchController) {
+ this.resultRowPanel = new ResultRowResultsPanel(eventBus, loader,searchController);
+ this.taxonomyRowPanel = new TaxonomyRowResultsPanel(eventBus, loader);
+
+ }
+
+ @Override
+ protected void onRender(Element parent, int pos) {
+ super.onRender(parent, pos);
+ setLayout(new FitLayout());
+
+ ContentPanel cp = new ContentPanel();
+ cp.setHeaderVisible(false);
+ cp.setLayout(cardLayout);
+
+ cp.add(resultRowPanel);
+ cp.add(taxonomyRowPanel);
+
+ cardLayout.setActiveItem(resultRowPanel);
+ activePanel = resultRowPanel;
+
+ add(cp);
+
+ };
+
+
+ public void updateCurrentGridView(SpeciesCapability capability) {
+ this.currentSelectedCapability = capability;
+ switchGridPanel();
+ }
+
+
+ private void switchGridPanel(){
+
+ switch (currentSelectedCapability) {
+
+ case RESULTITEM:
+
+ activePanel = resultRowPanel;
+ resultRowPanel.resetStore();
+ cardLayout.setActiveItem(resultRowPanel);
+
+ break;
+
+ case TAXONOMYITEM:
+
+ activePanel = taxonomyRowPanel;
+ taxonomyRowPanel.resetStore();
+ cardLayout.setActiveItem(taxonomyRowPanel);
+
+ break;
+
+ }
+
+ }
+
+
+ public void activeToolBarButtons(boolean b) {
+
+ if(activePanel.equals(resultRowPanel))
+ resultRowPanel.activeToolBarButtons(b);
+ else if(activePanel.equals(taxonomyRowPanel))
+ taxonomyRowPanel.activeToolBarButtons(b);
+ }
+
+
+ public void setFilterActive(boolean b, String filterValue) {
+ if(activePanel.equals(resultRowPanel))
+ resultRowPanel.setFilterActive(b, filterValue);
+ else if(activePanel.equals(taxonomyRowPanel))
+ taxonomyRowPanel.setFilterActive(b, filterValue);
+
+ }
+
+
+ public void activeBtnShowOnlySelected(boolean b) {
+ if(activePanel.equals(resultRowPanel))
+ resultRowPanel.activeBtnShowOnlySelected(b);
+ else if(activePanel.equals(taxonomyRowPanel))
+ taxonomyRowPanel.activeBtnShowOnlySelected(b);
+
+ }
+
+
+ public TaxonomyRowResultsPanel getTaxonomyRowPanel() {
+ return taxonomyRowPanel;
+ }
+
+ public void setMaskGridPanel(boolean mask){
+
+ if(activePanel.equals(resultRowPanel)){
+
+ if(mask)
+ resultRowPanel.getClassicGridView().mask(ConstantsSpeciesDiscovery.REQUEST_DATA, ConstantsSpeciesDiscovery.LOADINGSTYLE);
+ else
+ resultRowPanel.getClassicGridView().unmask();
+ }
+
+ else if(activePanel.equals(taxonomyRowPanel)){
+ if(mask)
+ taxonomyRowPanel.getClassicGridView().mask(ConstantsSpeciesDiscovery.REQUEST_DATA, ConstantsSpeciesDiscovery.LOADINGSTYLE);
+ else
+ taxonomyRowPanel.getClassicGridView().unmask();
+ }
+
+ }
+
+
+ public ResultRowResultsPanel getResultRowPanel() {
+ return resultRowPanel;
+ }
+
+}
diff --git a/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/SpeciesSearchFormPanel.java b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/SpeciesSearchFormPanel.java
new file mode 100644
index 0000000..cb47fe2
--- /dev/null
+++ b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/SpeciesSearchFormPanel.java
@@ -0,0 +1,503 @@
+package org.gcube.portlets.user.speciesdiscovery.client;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Date;
+import java.util.List;
+
+import org.gcube.portlets.user.speciesdiscovery.client.advancedsearch.AdvancedSearchPanelManager;
+import org.gcube.portlets.user.speciesdiscovery.client.event.CapabilitySelectedEvent;
+import org.gcube.portlets.user.speciesdiscovery.client.event.SearchCompleteEvent;
+import org.gcube.portlets.user.speciesdiscovery.client.event.SearchCompleteEventHandler;
+import org.gcube.portlets.user.speciesdiscovery.client.event.SearchEvent;
+import org.gcube.portlets.user.speciesdiscovery.client.event.SearchStartedEvent;
+import org.gcube.portlets.user.speciesdiscovery.client.event.SearchStartedEventHandler;
+import org.gcube.portlets.user.speciesdiscovery.client.filterresult.ResultFilterPanelManager;
+import org.gcube.portlets.user.speciesdiscovery.client.resources.Resources;
+import org.gcube.portlets.user.speciesdiscovery.client.window.HelpQueryWindow;
+import org.gcube.portlets.user.speciesdiscovery.shared.DataSourceModel;
+import org.gcube.portlets.user.speciesdiscovery.shared.SearchType;
+import org.gcube.portlets.user.speciesdiscovery.shared.SpeciesCapability;
+
+import com.extjs.gxt.ui.client.Style.VerticalAlignment;
+import com.extjs.gxt.ui.client.event.ButtonEvent;
+import com.extjs.gxt.ui.client.event.ComponentEvent;
+import com.extjs.gxt.ui.client.event.KeyListener;
+import com.extjs.gxt.ui.client.event.SelectionChangedEvent;
+import com.extjs.gxt.ui.client.event.SelectionChangedListener;
+import com.extjs.gxt.ui.client.event.SelectionListener;
+import com.extjs.gxt.ui.client.widget.ContentPanel;
+import com.extjs.gxt.ui.client.widget.HorizontalPanel;
+import com.extjs.gxt.ui.client.widget.Html;
+import com.extjs.gxt.ui.client.widget.Info;
+import com.extjs.gxt.ui.client.widget.button.ToggleButton;
+import com.extjs.gxt.ui.client.widget.form.CheckBox;
+import com.extjs.gxt.ui.client.widget.form.ComboBox.TriggerAction;
+import com.extjs.gxt.ui.client.widget.form.SimpleComboBox;
+import com.extjs.gxt.ui.client.widget.form.SimpleComboValue;
+import com.extjs.gxt.ui.client.widget.form.TextArea;
+import com.extjs.gxt.ui.client.widget.form.TextField;
+import com.extjs.gxt.ui.client.widget.layout.FlowLayout;
+import com.google.gwt.event.dom.client.ClickEvent;
+import com.google.gwt.event.dom.client.ClickHandler;
+import com.google.gwt.event.dom.client.KeyCodes;
+import com.google.gwt.event.shared.EventBus;
+import com.google.gwt.user.client.ui.AbstractImagePrototype;
+import com.google.gwt.user.client.ui.Button;
+
+
+/**
+ *
+ * @author "Federico De Faveri defaveri@isti.cnr.it" - Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
+ *
+ */
+public class SpeciesSearchFormPanel extends ContentPanel {
+ protected static final String SEARCH = "Search";
+ protected Button buttSimpleSearch;
+ protected Button buttSimpleExample;
+ protected SimpleComboBox searchType;
+ protected SimpleComboBox searchTypeResults;
+ protected EventBus eventBus;
+ protected TextField searchField;
+ private boolean isActiveAdvanced = false;
+ private HorizontalPanel hpAdvancedSearchLinks = new HorizontalPanel();
+ private final Html htmlLabelAdvs = new Html("Advanced Option");
+ private HorizontalPanel horizontalQueryPanel = new HorizontalPanel();
+ public static final int NORTHHEIGHT = 140;
+ private List tabItemList = new ArrayList();
+ private AdvancedSearchPanelManager advSearchPanelsManager = AdvancedSearchPanelManager.getInstance();
+ private final int DEFAULTLINKPANELTHEIGHT = 22;
+
+ public static enum SEARCHTYPE {SIMPLE, FULLTEXT};
+ public TextArea textArea = new TextArea();
+
+ private SEARCHTYPE currentSearchType = SEARCHTYPE.SIMPLE;
+ private com.extjs.gxt.ui.client.widget.button.Button buttSearchBy = new com.extjs.gxt.ui.client.widget.button.Button(SEARCHBYQUERY);
+ private final static String SEARCHBYQUERY = "Text query";
+ private final static String SEARCHBYSIMPLE = "Simple query";
+
+ private HorizontalPanel simpleSearchPanel = new HorizontalPanel();
+ private HorizontalPanel querySeachPanel = new HorizontalPanel();
+
+ protected Button buttQuerySearch;
+ protected Button buttQueryExample;
+
+ protected CheckBox checkValidateOccurrences = new CheckBox();
+
+ public SpeciesSearchFormPanel(EventBus eventBus) {
+
+ this.eventBus = eventBus;
+ bind();
+
+ horizontalQueryPanel.setStyleAttribute("margin-left", "10px");
+ horizontalQueryPanel.setStyleAttribute("margin-top", "15px");
+ htmlLabelAdvs.setStyleAttribute("font-size", "11px");
+ htmlLabelAdvs.setStyleAttribute("margin-left", "10px");
+
+ buttSearchBy.setStyleName("button-hyperlink");
+ buttSearchBy.setStyleAttribute("margin-top", "8px");
+
+ setLayout(new FlowLayout());
+ setFrame(false);
+ setHeaderVisible(false);
+ setBorders(false);
+
+ initComboSearchType();
+ initComboSearchTypeResult();
+
+ init();
+
+ switchSearchType(SEARCHTYPE.SIMPLE);
+
+ add(advSearchPanelsManager.getPanel());
+ }
+
+
+ private void initComboSearchType(){
+
+ searchType = new SimpleComboBox();
+ searchType.add(Arrays.asList(new String[]{ConstantsSpeciesDiscovery.SCIENTIFIC_NAME, ConstantsSpeciesDiscovery.COMMON_NAME}));
+ searchType.setEditable(false);
+ searchType.setTriggerAction(TriggerAction.ALL);
+ searchType.setSimpleValue(ConstantsSpeciesDiscovery.SCIENTIFIC_NAME);
+
+ }
+
+ private void initComboSearchTypeResult(){
+
+ searchTypeResults = new SimpleComboBox();
+ searchTypeResults.add(Arrays.asList(new String[]{SpeciesCapability.RESULTITEM.getName(), SpeciesCapability.TAXONOMYITEM.getName()}));
+ searchTypeResults.setEditable(false);
+ searchTypeResults.setTriggerAction(TriggerAction.ALL);
+ searchTypeResults.setSimpleValue(SpeciesCapability.RESULTITEM.getName());
+
+ searchTypeResults.addSelectionChangedListener(new SelectionChangedListener>() {
+
+ @Override
+ public void selectionChanged(SelectionChangedEvent> se) {
+ eventBus.fireEvent(new CapabilitySelectedEvent(getCapability(se.getSelectedItem().getValue())));
+
+ //TODO
+ }
+ });
+
+
+ }
+
+ //RETURN RESULT ITEM OR TAXOMONY ITEM
+ public SpeciesCapability getSelectedCapability(){
+ return getCapability(searchTypeResults.getValue().getValue());
+ }
+
+ private SpeciesCapability getCapability(String value){
+ if(value.compareTo(SpeciesCapability.TAXONOMYITEM.getName())==0)
+ return SpeciesCapability.TAXONOMYITEM;
+ else if(value.compareTo(SpeciesCapability.RESULTITEM.getName())==0)
+ return SpeciesCapability.RESULTITEM;
+ else if(value.compareTo(SpeciesCapability.NAMESMAPPING.getName())==0)
+ return SpeciesCapability.NAMESMAPPING;
+ else if(value.compareTo(SpeciesCapability.SYNONYMS.getName())==0)
+ return SpeciesCapability.SYNONYMS;
+
+ return SpeciesCapability.UNKNOWN;
+ }
+
+ public void switchSearchType(SEARCHTYPE searchType){
+
+ currentSearchType = searchType;
+
+ if(searchType.equals(SEARCHTYPE.SIMPLE)){
+ querySeachPanel.setVisible(false);
+ simpleSearchPanel.setVisible(true);
+ buttSearchBy.setText(SEARCHBYQUERY);
+ hpAdvancedSearchLinks.setEnabled(true);
+ }else if(searchType.equals(SEARCHTYPE.FULLTEXT)){
+ simpleSearchPanel.setVisible(false);
+ querySeachPanel.setVisible(true);
+ buttSearchBy.setText(SEARCHBYSIMPLE);
+ hpAdvancedSearchLinks.setEnabled(false);
+ activeAdvancedSearch(false);
+ }
+
+ }
+
+ protected void init()
+ {
+ horizontalQueryPanel.setBorders(false);
+ horizontalQueryPanel.setSize(935, 33);
+
+ searchTypeResults.setStyleAttribute("margin-right", "10px");
+
+ initSimpleSearchPanel();
+ initQuerySearchPanel();
+
+ createAdvancedSeachLinks();
+
+
+ horizontalQueryPanel.add(simpleSearchPanel);
+ horizontalQueryPanel.add(querySeachPanel);
+
+ buttSearchBy.addSelectionListener(new SelectionListener() {
+
+ @Override
+ public void componentSelected(ButtonEvent ce) {
+
+ if(currentSearchType.equals(SEARCHTYPE.SIMPLE))
+ switchSearchType(SEARCHTYPE.FULLTEXT);
+ else
+ switchSearchType(SEARCHTYPE.SIMPLE);
+
+ }
+ });
+
+ horizontalQueryPanel.add(buttSearchBy);
+
+
+ add(horizontalQueryPanel);
+ add(hpAdvancedSearchLinks);
+ }
+
+ private void initQuerySearchPanel() {
+ querySeachPanel.setSpacing(5);
+
+ buttQuerySearch = new Button(SEARCH);
+ buttQuerySearch.setStyleName("wizardButton");
+
+
+ buttQuerySearch.addClickHandler(new ClickHandler() {
+
+ @Override
+ public void onClick(ClickEvent event) {
+ searchByQuery(textArea.getValue());
+
+ }
+ });
+
+ buttQueryExample = new Button("Example", new ClickHandler() {
+
+ @Override
+ public void onClick(ClickEvent event) {
+ textArea.setValue("'Carcharodon carcharias' as ScientificName in Obis, GBIF return * ");
+
+ }
+ });
+
+ buttQueryExample.setStyleName("wizardButton");
+
+ textArea.setSize(450, 37);
+ textArea.setEmptyText("Write a query");
+ textArea.setStyleAttribute("margin-right", "5px");
+
+ querySeachPanel.add(textArea);
+
+ com.extjs.gxt.ui.client.widget.button.Button buttQueryInfo = new com.extjs.gxt.ui.client.widget.button.Button();
+ buttQueryInfo.setStyleAttribute("margin-right", "15px");
+ buttQueryInfo.setIcon(AbstractImagePrototype.create(Resources.INSTANCE.getHelpIcon()));
+
+ buttQueryInfo.addSelectionListener(new SelectionListener() {
+
+ @Override
+ public void componentSelected(ButtonEvent ce) {
+ new HelpQueryWindow();
+
+ }
+ });
+
+ querySeachPanel.add(buttQueryInfo);
+
+ querySeachPanel.add(buttQuerySearch);
+ querySeachPanel.add(buttQueryExample);
+
+
+ }
+
+
+ private void initSimpleSearchPanel() {
+
+ simpleSearchPanel.setSpacing(5);
+ simpleSearchPanel.add(searchTypeResults);
+ simpleSearchPanel.add(searchType);
+
+ searchField = new TextField();
+ searchField.setStyleAttribute("margin-left", "10px");
+ searchField.setStyleAttribute("margin-right", "10px");
+ searchField.setEmptyText(SEARCH);
+ searchField.setWidth(300);
+ searchField.addKeyListener(new KeyListener(){
+
+ @Override
+ public void componentKeyPress(ComponentEvent event) {
+ if (event.getKeyCode()==KeyCodes.KEY_ENTER) search();
+ }
+
+ });
+
+ simpleSearchPanel.add(searchField);
+
+
+ checkValidateOccurrences.setBoxLabel("validate occurrences");
+ checkValidateOccurrences.setValueAttribute("validate occurrences");
+ checkValidateOccurrences.setStyleAttribute("margin-right", "10px");
+
+// simpleSearchPanel.add(checkValidateOccurrences);
+
+ buttSimpleSearch = new Button(SEARCH);
+
+ buttSimpleSearch.addClickHandler(new ClickHandler() {
+
+ @Override
+ public void onClick(ClickEvent event) {
+ search();
+
+ }
+ });
+
+ buttSimpleSearch.setStyleName("wizardButton");
+ simpleSearchPanel.add(buttSimpleSearch);
+
+ buttSimpleExample = new Button("Example", new ClickHandler() {
+
+ @Override
+ public void onClick(ClickEvent event) {
+ searchField.setValue("Carcharodon carcharias");
+
+ }
+ });
+
+ buttSimpleExample.setStyleName("wizardButton");
+ simpleSearchPanel.add(buttSimpleExample);
+
+
+ }
+
+ public boolean getValueCheckValidateOcccurrences(){
+ return this.checkValidateOccurrences.getValue();
+ }
+
+ public void setValueCheckValidateOcccurrences(boolean bool){
+ this.checkValidateOccurrences.setValue(bool);
+ }
+
+ public void setVisibleCheckValidateOcccurrences(boolean bool){
+ this.checkValidateOccurrences.setVisible(bool);
+ }
+
+ public void activeButtonSearch(boolean bool){
+ buttSimpleSearch.setEnabled(bool);
+ }
+
+
+ private void createAdvancedSeachLinks() {
+
+ hpAdvancedSearchLinks.setVerticalAlign(VerticalAlignment.MIDDLE);
+ hpAdvancedSearchLinks.setStyleAttribute("marginLeft", "15px");
+ hpAdvancedSearchLinks.setStyleAttribute("marginRight", "15px");
+ hpAdvancedSearchLinks.setStyleAttribute("marginTop", "5px");
+ hpAdvancedSearchLinks.setStyleAttribute("border-bottom", "thin solid #99BBE8;");
+ hpAdvancedSearchLinks.setStyleAttribute("background-color", "#EFF5FB");
+ hpAdvancedSearchLinks.add(htmlLabelAdvs);
+ hpAdvancedSearchLinks.setHeight(DEFAULTLINKPANELTHEIGHT);
+// imageArrowRight.setStyleAttribute("margin-top", "5px");
+// imageArrowDown.setStyleAttribute("margin-top", "5px");
+
+ for(final String advPanel : advSearchPanelsManager.getListAdvancedSearchPanels()){
+
+ ToggleButton butt = new ToggleButton(advPanel);
+ butt.setToggleGroup("tab");
+ butt.setSize(100, -1);
+ butt.setStyleAttribute("marginLeft", "20px");
+ butt.setId(advPanel);
+ butt.setStyleName("button-hyperlink");
+ butt.setIcon(AbstractImagePrototype.create(Resources.INSTANCE.getArrowRight()));
+
+ tabItemList.add(butt);
+
+ butt.addSelectionListener(new SelectionListener() {
+
+ @Override
+ public void componentSelected(ButtonEvent ce) {
+
+// isActiveAdvanced = !isActiveAdvanced;
+
+ ToggleButton butt = (ToggleButton) ce.getButton();
+
+ isActiveAdvanced = butt.isPressed();
+
+ advSearchPanelsManager.setActivePanel(advPanel);
+ activeAdvancedSearch(isActiveAdvanced);
+ changeStateIcons();
+ }
+
+ private void changeStateIcons() {
+
+ for(ToggleButton toggle : tabItemList){
+ if(toggle.isPressed()){
+ toggle.setIcon(AbstractImagePrototype.create(Resources.INSTANCE.getArrowDown()));
+ toggle.getElement().getStyle().setBackgroundColor("#D0DEF0");
+
+ }else{
+ toggle.setIcon(AbstractImagePrototype.create(Resources.INSTANCE.getArrowRight()));
+ toggle.getElement().getStyle().clearBackgroundColor();
+// toggle.getElement().getStyle().setFontWeight(Style.FontWeight.NORMAL);
+ }
+ }
+ }
+
+ });
+
+
+ hpAdvancedSearchLinks.add(butt);
+
+ }
+
+ }
+
+
+ private void activeAdvancedSearch(boolean bool){
+
+ if(bool){
+// htmlLabelAdvs.setHtml(messageAdvActive);
+ SearchBorderLayoutPanel.getInstance().updateNorthSize(NORTHHEIGHT);
+ }
+ else{
+// htmlLabelAdvs.setHtml(messageAdvDeactive);
+ SearchBorderLayoutPanel.getInstance().updateNorthSize(SearchBorderLayoutPanel.DEFAULTNORTHHEIGHT);
+ }
+ }
+
+ protected void search()
+ {
+
+ String searchTerm = searchField.getValue();
+ if (searchTerm!=null && searchTerm.length()!=0) {
+
+// if(isActiveAdvanced){
+ search(searchTerm,
+ advSearchPanelsManager.getUpperBoundLatitudeField().getValue(),
+ advSearchPanelsManager.getUpperBoundLongitudeField().getValue(),
+ advSearchPanelsManager.getLowerBoundLatitudeField().getValue(),
+ advSearchPanelsManager.getLowerBoundLongitudeField().getValue(),
+ advSearchPanelsManager.getFromDate().getValue(),
+ advSearchPanelsManager.getToDate().getValue(),
+ advSearchPanelsManager.getCheckedDataSources(),
+ ResultFilterPanelManager.getInstance().getGroupByRank(),
+ advSearchPanelsManager.getCurrentSelectedCapability());
+// }else
+// search(searchTerm,null,null,null,null,null,null);
+ }
+ else Info.display("No search term specified", "There is not search term specified");
+
+ }
+
+ protected void search(String searchTerm, Number upperBoundLongitude, Number upperBoundLatitude, Number lowerBoundLongitude, Number lowerBoundLatitude, Date fromDate, Date toDate, List listDataSources, String groupRank, SpeciesCapability resultType)
+ {
+ mask("Searching...");
+ //searchButton.setEnabled(false);
+
+ SearchType type = null;
+ if (ConstantsSpeciesDiscovery.SCIENTIFIC_NAME.equals(searchType.getSimpleValue())) type = SearchType.BY_SCIENTIFIC_NAME;
+ if (ConstantsSpeciesDiscovery.COMMON_NAME.equals(searchType.getSimpleValue())) type = SearchType.BY_COMMON_NAME;
+
+ SearchEvent event = new SearchEvent(type, searchTerm, upperBoundLongitude, upperBoundLatitude, lowerBoundLongitude, lowerBoundLatitude, fromDate, toDate, listDataSources, groupRank, resultType);
+ eventBus.fireEvent(event);
+ }
+
+
+ protected void searchByQuery(String query)
+ {
+ if (query!=null && query.length()!=0) {
+ SearchEvent event = new SearchEvent(SearchType.BY_QUERY, query);
+ eventBus.fireEvent(event);
+ }
+ else
+ Info.display("No query specified", "There is not query specified");
+ }
+
+ protected void bind()
+ {
+ eventBus.addHandler(SearchStartedEvent.TYPE, new SearchStartedEventHandler() {
+
+ @Override
+ public void onSearchStarted(SearchStartedEvent event) {
+ unmask();
+ }
+ });
+ eventBus.addHandler(SearchCompleteEvent.TYPE, new SearchCompleteEventHandler() {
+
+ @Override
+ public void onSearchComplete(SearchCompleteEvent event) {
+ enableSearch();
+ }
+ });
+ }
+
+ protected void enableSearch()
+ {
+ buttSimpleSearch.setEnabled(true);
+ }
+
+ protected void disableSearch()
+ {
+ buttSimpleSearch.setEnabled(false);
+ }
+}
diff --git a/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/advancedsearch/AdvancedSearchInterface.java b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/advancedsearch/AdvancedSearchInterface.java
new file mode 100644
index 0000000..f2bd30c
--- /dev/null
+++ b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/advancedsearch/AdvancedSearchInterface.java
@@ -0,0 +1,21 @@
+package org.gcube.portlets.user.speciesdiscovery.client.advancedsearch;
+
+import com.extjs.gxt.ui.client.widget.form.DateField;
+import com.extjs.gxt.ui.client.widget.form.NumberField;
+
+/**
+ * @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
+ *
+ */
+public interface AdvancedSearchInterface {
+
+ //Bounds filter
+ public NumberField getUpperBoundLatitudeField();
+ public NumberField getUpperBoundLongitudeField();
+ public NumberField getLowerBoundLatitudeField();
+ public NumberField getLowerBoundLongitudeField();
+
+ //Date filter
+ public DateField getFromDate();
+ public DateField getToDate();
+}
diff --git a/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/advancedsearch/AdvancedSearchPanelEnum.java b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/advancedsearch/AdvancedSearchPanelEnum.java
new file mode 100644
index 0000000..d493774
--- /dev/null
+++ b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/advancedsearch/AdvancedSearchPanelEnum.java
@@ -0,0 +1,24 @@
+package org.gcube.portlets.user.speciesdiscovery.client.advancedsearch;
+
+/**
+ *
+ * @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
+ *
+ */
+public enum AdvancedSearchPanelEnum {
+ BOUNDS("Bounds"), DATE("Date"), TYPE("Type"), REGION("Region"), DATASOURCE("Data Source"), CLASSIFICATION("Classification");
+
+ private String label;
+
+ AdvancedSearchPanelEnum() {
+ }
+
+ AdvancedSearchPanelEnum(String label) {
+ this.label = label;
+ }
+
+ public String getLabel() {
+ return label;
+ }
+
+}
diff --git a/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/advancedsearch/AdvancedSearchPanelInterface.java b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/advancedsearch/AdvancedSearchPanelInterface.java
new file mode 100644
index 0000000..6a2eca2
--- /dev/null
+++ b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/advancedsearch/AdvancedSearchPanelInterface.java
@@ -0,0 +1,18 @@
+package org.gcube.portlets.user.speciesdiscovery.client.advancedsearch;
+
+import java.util.ArrayList;
+
+import org.gcube.portlets.user.speciesdiscovery.shared.DataSourceModel;
+
+import com.extjs.gxt.ui.client.widget.ContentPanel;
+
+/**
+ * @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
+ *
+ */
+public interface AdvancedSearchPanelInterface {
+ public ContentPanel getPanel();
+ public String getName();
+ public void resetAdvancedFields();
+ public ArrayList getAvailablePlugIn();
+}
diff --git a/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/advancedsearch/AdvancedSearchPanelManager.java b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/advancedsearch/AdvancedSearchPanelManager.java
new file mode 100644
index 0000000..a696f46
--- /dev/null
+++ b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/advancedsearch/AdvancedSearchPanelManager.java
@@ -0,0 +1,225 @@
+package org.gcube.portlets.user.speciesdiscovery.client.advancedsearch;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+
+import org.gcube.portlets.user.speciesdiscovery.shared.DataSourceCapability;
+import org.gcube.portlets.user.speciesdiscovery.shared.DataSourceModel;
+import org.gcube.portlets.user.speciesdiscovery.shared.SpeciesCapability;
+
+import com.extjs.gxt.ui.client.widget.ContentPanel;
+import com.extjs.gxt.ui.client.widget.form.DateField;
+import com.extjs.gxt.ui.client.widget.form.NumberField;
+import com.extjs.gxt.ui.client.widget.layout.CardLayout;
+
+/**
+ * @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
+ *
+ */
+public class AdvancedSearchPanelManager extends ContentPanel implements AdvancedSearchInterface{
+
+ private static AdvancedSearchPanelManager instance;
+ private BoundsFilter boundsFilter;
+ private DateFilter dateFilter;
+ private RegionFilter regionFilter;
+ private DataSourceFilter dataSourceFilter;
+ private List listAdvacedPanels = new ArrayList();
+ private CardLayout cardLayout = new CardLayout();
+// private ClassificationFilter classificationFilter;
+ private HashMap listDataSources;
+ private SpeciesCapability currentSelectedCapability;
+
+ public static synchronized AdvancedSearchPanelManager getInstance() {
+ if (instance == null)
+ instance = new AdvancedSearchPanelManager();
+ return instance;
+ }
+
+ private AdvancedSearchPanelManager(){
+
+ boundsFilter = new BoundsFilter();
+ dateFilter = new DateFilter();
+ regionFilter = new RegionFilter();
+ dataSourceFilter = new DataSourceFilter();
+// classificationFilter = new ClassificationFilter();
+
+ init();
+// listAdvacedPanels.add(classificationFilter.getName());
+ listAdvacedPanels.add(dataSourceFilter.getName());
+ listAdvacedPanels.add(boundsFilter.getName());
+ listAdvacedPanels.add(dateFilter.getName());
+// listAdvacedPanels.add(regionFilter.getName());
+
+ }
+
+ private void init() {
+
+ setLayout(cardLayout);
+ setHeaderVisible(false);
+ setSize(925, 70);
+ setBodyBorder(false);
+
+ add(boundsFilter.getPanel());
+ add(dateFilter.getPanel());
+ add(dataSourceFilter.getPanel());
+ add(regionFilter.getPanel());
+// add(classificationFilter.getPanel());
+
+ cardLayout.setActiveItem(boundsFilter.getPanel());
+ }
+
+
+ public List getListAdvancedSearchPanels(){
+ return listAdvacedPanels;
+ }
+
+ public void setActivePanel(String name){
+ if(name.equals(AdvancedSearchPanelEnum.BOUNDS.getLabel()))
+ cardLayout.setActiveItem(boundsFilter.getPanel());
+ else if(name.equals(AdvancedSearchPanelEnum.DATE.getLabel()))
+ cardLayout.setActiveItem(dateFilter.getPanel());
+ else if(name.equals(AdvancedSearchPanelEnum.DATASOURCE.getLabel()))
+ cardLayout.setActiveItem(dataSourceFilter.getPanel());
+ else if(name.equals(AdvancedSearchPanelEnum.REGION.getLabel()))
+ cardLayout.setActiveItem(regionFilter.getPanel());
+// else if(name.equals(AdvancedSearchPanelEnum.CLASSIFICATION.getLabel()))
+// cardLayout.setActiveItem(classificationFilter.getPanel());
+ }
+
+
+ public ContentPanel getPanel(){
+ return this;
+ }
+
+
+ public NumberField getUpperBoundLatitudeField() {
+ return boundsFilter.getUpperBoundLatitudeField();
+ }
+
+ public NumberField getUpperBoundLongitudeField() {
+ return boundsFilter.getUpperBoundLongitudeField();
+ }
+
+ public NumberField getLowerBoundLatitudeField() {
+ return boundsFilter.getLowerBoundLatitudeField();
+ }
+
+ public NumberField getLowerBoundLongitudeField() {
+ return boundsFilter.getLowerBoundLongitudeField();
+ }
+
+ public DateField getFromDate() {
+ return dateFilter.getFromDate();
+ }
+
+ public DateField getToDate() {
+ return dateFilter.getToDate();
+ }
+
+ public void loadDataSource(List result) {
+ dataSourceFilter.loadDataSource(result);
+
+ listDataSources = new HashMap();
+
+ //fill hash
+ for(DataSourceModel dsm: result){
+ listDataSources.put(dsm.getId(), dsm);
+ }
+
+ setAvailableInfoAdvancedFilters(result);
+
+ }
+
+ private void setAvailableInfoAdvancedFilters(List result) {
+
+ for(DataSourceModel dsm: result){
+ for (DataSourceCapability dsc : dsm.getListCapabilities()) {
+
+ ArrayList properties = dsc.getListFilters();
+
+ for (SpeciesCapability capabilityEnum : properties) {
+
+// System.out.println("capability " + capabilityEnum.toString());
+
+ if(capabilityEnum.equals(SpeciesCapability.FROMDATE))
+ dateFilter.addAvailablePlugInfo(dsm, SpeciesCapability.FROMDATE);
+ else if(capabilityEnum.equals(SpeciesCapability.LOWERBOUND))
+ boundsFilter.addAvailablePlugInfo(dsm, SpeciesCapability.LOWERBOUND);
+ else if(capabilityEnum.equals(SpeciesCapability.TODATE))
+ dateFilter.addAvailablePlugInfo(dsm, SpeciesCapability.TODATE);
+ else if(capabilityEnum.equals(SpeciesCapability.UPPERBOUND))
+ boundsFilter.addAvailablePlugInfo(dsm, SpeciesCapability.UPPERBOUND);
+
+ }
+ }
+ }
+
+
+ }
+
+ public void setCurrentCapability(SpeciesCapability capability){
+
+ this.currentSelectedCapability = capability;
+
+ this.capabilityChange();
+
+ }
+
+ public void setVisibleAllPanel(boolean bool){
+
+ boundsFilter.getPanel().setVisible(bool);
+ dateFilter.getPanel().setVisible(bool);
+ dataSourceFilter.getPanel().setVisible(bool);
+ regionFilter.getPanel().setVisible(bool);
+// classificationFilter.getPanel().setVisible(bool);
+
+ }
+
+ private void capabilityChange() {
+
+// dataSourceFilter.disableAllCheck();
+ dataSourceFilter.enableCheckByCapability(this.currentSelectedCapability);
+
+ }
+
+ public List getCheckedDataSources() {
+ return dataSourceFilter.getCheckedGroupList();
+
+ }
+
+ public HashMap findDataSourceByCapability(SpeciesCapability capability) {
+
+ if(capability.getName().compareTo(SpeciesCapability.RESULTITEM.getName())==0){
+ return dataSourceFilter.getHashMapDataSourceOccurrences();
+ }
+ else if(capability.getName().compareTo(SpeciesCapability.TAXONOMYITEM.getName())==0){
+
+ return dataSourceFilter.getHashMapDataSourceClassification();
+ }
+
+ return null;
+ }
+
+
+ public DataSourceModel findDataSourceByCapabilityAndName(SpeciesCapability capability, String dataSourceName) {
+
+ HashMap hashDataSource = findDataSourceByCapability(capability);
+
+ if(hashDataSource!=null)
+ return hashDataSource.get(dataSourceName);
+
+ return null;
+ }
+
+
+
+ public SpeciesCapability getCurrentSelectedCapability() {
+ return currentSelectedCapability;
+ }
+
+// public String getGroupByRank(){
+// return classificationFilter.getSelectedRank();
+// }
+
+}
diff --git a/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/advancedsearch/BoundsFilter.java b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/advancedsearch/BoundsFilter.java
new file mode 100644
index 0000000..41ff2f7
--- /dev/null
+++ b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/advancedsearch/BoundsFilter.java
@@ -0,0 +1,215 @@
+package org.gcube.portlets.user.speciesdiscovery.client.advancedsearch;
+
+
+
+import java.util.ArrayList;
+
+import org.gcube.portlets.user.speciesdiscovery.client.ConstantsSpeciesDiscovery;
+import org.gcube.portlets.user.speciesdiscovery.client.resources.Resources;
+import org.gcube.portlets.user.speciesdiscovery.shared.DataSourceModel;
+import org.gcube.portlets.user.speciesdiscovery.shared.SpeciesCapability;
+
+import com.extjs.gxt.ui.client.Style.Scroll;
+import com.extjs.gxt.ui.client.event.ButtonEvent;
+import com.extjs.gxt.ui.client.event.SelectionListener;
+import com.extjs.gxt.ui.client.widget.ContentPanel;
+import com.extjs.gxt.ui.client.widget.HorizontalPanel;
+import com.extjs.gxt.ui.client.widget.button.Button;
+import com.extjs.gxt.ui.client.widget.button.ButtonBar;
+import com.extjs.gxt.ui.client.widget.button.ToggleButton;
+import com.extjs.gxt.ui.client.widget.form.MultiField;
+import com.extjs.gxt.ui.client.widget.form.NumberField;
+import com.extjs.gxt.ui.client.widget.form.TextArea;
+import com.extjs.gxt.ui.client.widget.layout.FitLayout;
+import com.google.gwt.user.client.ui.AbstractImagePrototype;
+
+/**
+ * @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
+ *
+ */
+public class BoundsFilter extends ColumnContainer implements AdvancedSearchPanelInterface {
+
+ private NumberField upperBoundLatitudeField;
+ private NumberField upperBoundLongitudeField;
+ private NumberField lowerBoundLatitudeField;
+ private NumberField lowerBoundLongitudeField;
+ private ArrayList availablePlugin;
+
+ private ContentPanel boundsPanel = new ContentPanel();
+
+ private Button btnResetAllFilters = new Button("Reset Filters");
+ private TextArea txtAreaInfo = new TextArea();
+
+
+ public BoundsFilter() {
+ initBoundsPanel();
+ btnResetAllFilters.setStyleName("button-hyperlink");
+ availablePlugin = new ArrayList();
+ }
+
+ @Override
+ public ContentPanel getPanel() {
+ return boundsPanel;
+ }
+
+ private void initBoundsPanel() {
+
+ boundsPanel.setHeaderVisible(false);
+ boundsPanel.setBodyBorder(false);
+
+ upperBoundLatitudeField = new NumberField();
+ upperBoundLatitudeField.setPropertyEditorType(Float.class);
+ upperBoundLatitudeField.setEmptyText("Latitude");
+
+ upperBoundLongitudeField = new NumberField();
+ upperBoundLongitudeField.setPropertyEditorType(Float.class);
+ upperBoundLongitudeField.setEmptyText("Longitude");
+
+ MultiField uppertBound = new MultiField("Upper Bound",upperBoundLatitudeField, upperBoundLongitudeField);uppertBound.setSpacing(5);
+ left.add(uppertBound);
+
+ lowerBoundLatitudeField = new NumberField();
+ lowerBoundLatitudeField.setPropertyEditorType(Float.class);
+ lowerBoundLatitudeField.setEmptyText("Latitude");
+
+ lowerBoundLongitudeField = new NumberField();
+ lowerBoundLongitudeField.setPropertyEditorType(Float.class);
+ lowerBoundLongitudeField.setEmptyText("Longitude");
+
+ MultiField lowerBound = new MultiField("Lower Bound",lowerBoundLatitudeField, lowerBoundLongitudeField);
+ lowerBound.setSpacing(5);
+
+ left.add(lowerBound);
+ left.add(uppertBound);
+
+// // Horizontal alignment right
+// LayoutContainer containerRightAlign = new LayoutContainer();
+// HBoxLayout layout2 = new HBoxLayout();
+// layout2.setPadding(new Padding(5));
+// layout2.setHBoxLayoutAlign(HBoxLayoutAlign.MIDDLE);
+// layout2.setPack(BoxLayoutPack.END);
+// containerRightAlign.setLayout(layout2);
+//
+// HBoxLayoutData layoutData = new HBoxLayoutData(new Margins(0, 5, 0, 0));
+// containerRightAlign.add(btnResetAllFilters, layoutData);
+
+
+ btnResetAllFilters.addSelectionListener(new SelectionListener() {
+
+ @Override
+ public void componentSelected(ButtonEvent ce) {
+ resetAdvancedFields();
+
+ }
+ });
+
+
+ final ContentPanel cp = new ContentPanel();
+ ButtonBar buttonBar = new ButtonBar();
+
+ ToggleButton toggleInfo = new ToggleButton("");
+ toggleInfo.addSelectionListener(new SelectionListener() {
+ public void componentSelected(ButtonEvent ce) {
+
+ if (cp.isVisible()) {
+// cp.el().slideOut(Direction.LEFT, FxConfig.NONE);
+ cp.setVisible(false);
+ } else {
+ cp.setVisible(true);
+// cp.el().slideIn(Direction.RIGHT, FxConfig.NONE);
+
+ }
+// cp.setVisible(true);
+// cp.el().fadeToggle(FxConfig.NONE);
+ }
+ });
+
+ toggleInfo.setIcon(AbstractImagePrototype.create(Resources.INSTANCE.getInfoIcon()));
+
+ toggleInfo.toggle(false);
+
+// buttonBar.add(btnResetAllFilters);
+
+ buttonBar.add(toggleInfo);
+
+ cp.setVisible(false);
+ cp.setHeading("Bounds");
+ cp.setBodyBorder(false);
+
+ txtAreaInfo.setReadOnly(true);
+ txtAreaInfo.setValue(ConstantsSpeciesDiscovery.AVAILABLEFILTERBOUND + ": \n");
+
+ cp.setLayout(new FitLayout());
+
+ cp.add(txtAreaInfo);
+ cp.setWidth(300);
+ cp.setHeight(50);
+ cp.setScrollMode(Scroll.AUTOY);
+ cp.setHeaderVisible(false);
+
+
+ HorizontalPanel hp = new HorizontalPanel();
+ cp.setWidth(310);
+// hp.setSpacing(5);
+
+ cp.setStyleAttribute("margin-left", "5px");
+ cp.setStyleAttribute("margin-top", "2px");
+
+ toggleInfo.setStyleAttribute("margin-left", "5px");
+ toggleInfo.setStyleAttribute("margin-top", "2px");
+
+ hp.add(btnResetAllFilters);
+ hp.add(cp);
+ hp.add(toggleInfo);
+
+ right.add(hp);
+// right.add(cp);
+
+ boundsPanel.add(columnContainer);
+
+
+ }
+
+ @Override
+ public String getName() {
+ return AdvancedSearchPanelEnum.BOUNDS.getLabel();
+ }
+
+
+ public void resetAdvancedFields() {
+ upperBoundLatitudeField.reset();
+ upperBoundLongitudeField.reset();
+ lowerBoundLatitudeField.reset();
+ lowerBoundLongitudeField.reset();
+ }
+
+ public NumberField getUpperBoundLatitudeField() {
+ return upperBoundLatitudeField;
+ }
+
+ public NumberField getUpperBoundLongitudeField() {
+ return upperBoundLongitudeField;
+ }
+
+ public NumberField getLowerBoundLatitudeField() {
+ return lowerBoundLatitudeField;
+ }
+
+ public NumberField getLowerBoundLongitudeField() {
+ return lowerBoundLongitudeField;
+ }
+
+ public void addAvailablePlugInfo(DataSourceModel plugin, SpeciesCapability capability){
+
+ availablePlugin.add(plugin);
+ String currentValue = txtAreaInfo.getValue();
+ txtAreaInfo.setValue(currentValue + plugin.getName() + " (" + capability.getName() + "); \n");
+ }
+
+ @Override
+ public ArrayList getAvailablePlugIn() {
+ return availablePlugin;
+ }
+
+
+}
diff --git a/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/advancedsearch/ClassificationFilter.java b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/advancedsearch/ClassificationFilter.java
new file mode 100644
index 0000000..808326e
--- /dev/null
+++ b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/advancedsearch/ClassificationFilter.java
@@ -0,0 +1,99 @@
+package org.gcube.portlets.user.speciesdiscovery.client.advancedsearch;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.gcube.portlets.user.speciesdiscovery.client.ConstantsSpeciesDiscovery;
+import org.gcube.portlets.user.speciesdiscovery.shared.DataSourceModel;
+import org.gcube.portlets.user.speciesdiscovery.shared.MainTaxonomicRankEnum;
+
+import com.extjs.gxt.ui.client.event.ButtonEvent;
+import com.extjs.gxt.ui.client.event.SelectionListener;
+import com.extjs.gxt.ui.client.widget.ContentPanel;
+import com.extjs.gxt.ui.client.widget.button.Button;
+import com.extjs.gxt.ui.client.widget.form.ComboBox.TriggerAction;
+import com.extjs.gxt.ui.client.widget.form.SimpleComboBox;
+
+/**
+ * @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
+ *
+ */
+public class ClassificationFilter extends ColumnContainer implements AdvancedSearchPanelInterface {
+
+ private Button btnResetAllFilters = new Button("Reset Filters");
+ private ContentPanel classificationFilterPanel = new ContentPanel();
+ private SimpleComboBox scb;
+ private String baseClassification = MainTaxonomicRankEnum.CLASS.getLabel(); //is CLASS
+
+ public ClassificationFilter() {
+ init();
+ btnResetAllFilters.setStyleName("button-hyperlink");
+ }
+
+
+ private void init() {
+
+ classificationFilterPanel.setHeaderVisible(false);
+ classificationFilterPanel.setBodyBorder(false);
+
+ initComboRankFilter();
+
+ left.add(scb);
+
+ scb.setSimpleValue(baseClassification);
+
+ right.add(btnResetAllFilters);
+
+ btnResetAllFilters.addSelectionListener(new SelectionListener() {
+
+ @Override
+ public void componentSelected(ButtonEvent ce) {
+ resetAdvancedFields();
+ }
+ });
+
+ classificationFilterPanel.add(columnContainer);
+ }
+
+ @Override
+ public ContentPanel getPanel() {
+ return classificationFilterPanel;
+ }
+
+ @Override
+ public String getName() {
+ return AdvancedSearchPanelEnum.CLASSIFICATION.getLabel();
+ }
+
+ @Override
+ public void resetAdvancedFields() {
+ scb.setSimpleValue(baseClassification);
+ }
+
+ private SimpleComboBox initComboRankFilter() {
+
+ List ls = new ArrayList();
+
+ for (String rank : MainTaxonomicRankEnum.getListLabels()) ls.add(rank);
+
+ scb = new SimpleComboBox();
+ scb.setFieldLabel(ConstantsSpeciesDiscovery.GROUPBYRANK);
+ scb.setTypeAhead(true);
+ scb.setEditable(false);
+ scb.setTriggerAction(TriggerAction.ALL);
+
+ scb.add(ls);
+
+ return scb;
+ }
+
+ public String getSelectedRank(){
+ return this.scb.getSimpleValue();
+ }
+
+
+ @Override
+ public ArrayList getAvailablePlugIn() {
+ return null;
+ }
+}
diff --git a/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/advancedsearch/ColumnContainer.java b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/advancedsearch/ColumnContainer.java
new file mode 100644
index 0000000..8728edc
--- /dev/null
+++ b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/advancedsearch/ColumnContainer.java
@@ -0,0 +1,41 @@
+package org.gcube.portlets.user.speciesdiscovery.client.advancedsearch;
+
+import com.extjs.gxt.ui.client.widget.LayoutContainer;
+import com.extjs.gxt.ui.client.widget.layout.ColumnData;
+import com.extjs.gxt.ui.client.widget.layout.ColumnLayout;
+import com.extjs.gxt.ui.client.widget.layout.FormLayout;
+
+/**
+ * @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
+ *
+ */
+public class ColumnContainer {
+
+ protected LayoutContainer columnContainer = new LayoutContainer();
+ protected LayoutContainer left = new LayoutContainer();
+ protected LayoutContainer right = new LayoutContainer();
+
+
+ public ColumnContainer() {
+
+ columnContainer.setLayout(new ColumnLayout());
+ columnContainer.setStyleAttribute("marginLeft", "10px");
+ columnContainer.setStyleAttribute("marginRight", "10px");
+ columnContainer.setStyleAttribute("padding", "5px");
+
+
+ left.setStyleAttribute("paddingRight", "10px");
+ FormLayout layout = new FormLayout();
+ left.setLayout(layout);
+
+
+ right.setStyleAttribute("paddingLeft", "10px");
+ layout = new FormLayout();
+ right.setLayout(layout);
+
+
+ columnContainer.add(left, new ColumnData(.5));
+ columnContainer.add(right, new ColumnData(.5));
+ }
+
+}
diff --git a/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/advancedsearch/DataSourceFilter.java b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/advancedsearch/DataSourceFilter.java
new file mode 100644
index 0000000..5e1f581
--- /dev/null
+++ b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/advancedsearch/DataSourceFilter.java
@@ -0,0 +1,349 @@
+package org.gcube.portlets.user.speciesdiscovery.client.advancedsearch;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.HashMap;
+import java.util.List;
+
+import org.gcube.portlets.user.speciesdiscovery.client.window.WindowCredits;
+import org.gcube.portlets.user.speciesdiscovery.shared.DataSourceCapability;
+import org.gcube.portlets.user.speciesdiscovery.shared.DataSourceModel;
+import org.gcube.portlets.user.speciesdiscovery.shared.SpeciesCapability;
+
+import com.extjs.gxt.ui.client.event.ButtonEvent;
+import com.extjs.gxt.ui.client.event.SelectionListener;
+import com.extjs.gxt.ui.client.widget.ContentPanel;
+import com.extjs.gxt.ui.client.widget.button.Button;
+import com.extjs.gxt.ui.client.widget.form.CheckBox;
+import com.extjs.gxt.ui.client.widget.form.CheckBoxGroup;
+import com.extjs.gxt.ui.client.widget.form.Field;
+import com.extjs.gxt.ui.client.widget.layout.FitLayout;
+import com.extjs.gxt.ui.client.widget.tips.ToolTipConfig;
+import com.google.gwt.event.dom.client.ClickEvent;
+import com.google.gwt.event.dom.client.ClickHandler;
+import com.google.gwt.user.client.ui.Anchor;
+import com.google.gwt.user.client.ui.HasVerticalAlignment;
+import com.google.gwt.user.client.ui.HorizontalPanel;
+import com.google.gwt.user.client.ui.VerticalPanel;
+
+/**
+ * @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
+ *
+ */
+public class DataSourceFilter implements AdvancedSearchPanelInterface {
+
+ private ContentPanel dataPanel = new ContentPanel();
+ private Button btnResetAllFilters = new Button("Reset Filters");
+
+ private CheckBoxGroup checkGroup = new CheckBoxGroup();
+ private CheckBoxGroup checkGroupOccurrences= new CheckBoxGroup();
+ private CheckBoxGroup checkGroupClassification = new CheckBoxGroup();
+
+// private ArrayList listDataSourceOccurrences = new ArrayList();
+// private ArrayList listDataSourceClassification = new ArrayList();
+
+ private HashMap hashMapDataSourceClassification = new HashMap();
+ private HashMap hashMapDataSourceOccurrences = new HashMap();
+
+
+ public DataSourceFilter() {
+// checkGroup.setFieldLabel("Sources");
+ initDataSourceFilter();
+ addListners();
+ btnResetAllFilters.setStyleName("button-hyperlink");
+ }
+
+
+ private void initDataSourceFilter() {
+
+ dataPanel.setHeaderVisible(false);
+ dataPanel.setBodyBorder(false);
+ dataPanel.setLayout(new FitLayout());
+
+ dataPanel.setStyleAttribute("marginLeft", "10px");
+ dataPanel.setStyleAttribute("marginRight", "10px");
+ dataPanel.setStyleAttribute("padding", "5px");
+
+ VerticalPanel vp = new VerticalPanel();
+
+ HorizontalPanel hp1 = new HorizontalPanel();
+ HorizontalPanel hp2 = new HorizontalPanel();
+
+// Html htmlSource = new Html("Occurences Sources: ");
+
+ Anchor htmlSource = new Anchor("Occurences Sources: ", true);
+ htmlSource.setStyleName("margin-occurrence-link");
+
+ htmlSource.addClickHandler(new ClickHandler() {
+
+ @Override
+ public void onClick(ClickEvent event) {
+ new WindowCredits("Occurrences data sources credits", hashMapDataSourceOccurrences);
+
+ }
+ });
+
+
+
+// Html htmlSource2 = new Html("Classification Sources: ");
+
+ Anchor htmlSource2 = new Anchor("Classification Sources: ", true);
+
+ htmlSource2.addClickHandler(new ClickHandler() {
+
+ @Override
+ public void onClick(ClickEvent event) {
+ new WindowCredits("Classification data sources credits", hashMapDataSourceClassification);
+
+ }
+ });
+
+ htmlSource2.setStyleName("margin-occurrence-link");
+
+// htmlSource.setStyleAttribute("margin-top", "2px");
+// htmlSource.setStyleAttribute("margin-right", "5px");
+// htmlSource2.setStyleAttribute("margin-top", "2px");
+// htmlSource2.setStyleAttribute("margin-right", "5px");
+
+ hp1.setVerticalAlignment(HasVerticalAlignment.ALIGN_MIDDLE);
+ hp2.setVerticalAlignment(HasVerticalAlignment.ALIGN_MIDDLE);
+
+ hp1.add(htmlSource);
+ hp2.add(htmlSource2);
+
+ hp1.add(checkGroupOccurrences);
+ hp2.add(checkGroupClassification);
+
+
+// Anchor anchorAbout1 = new Anchor("Abouts", true);
+//
+// anchorAbout1.addClickHandler(new ClickHandler() {
+//
+// @Override
+// public void onClick(ClickEvent event) {
+// new WindowCredits("Occurrences data sources credits", hashMapDataSourceOccurrences);
+//
+// }
+// });
+//
+// Anchor anchorAbout2 = new Anchor("Abouts", true);
+//
+// anchorAbout2.addClickHandler(new ClickHandler() {
+//
+// @Override
+// public void onClick(ClickEvent event) {
+// new WindowCredits("Classification data sources credits", hashMapDataSourceClassification);
+//
+// }
+// });
+
+// hp1.add(anchorAbout1);
+// hp2.add(anchorAbout2);
+
+ vp.add(hp1);
+ vp.add(hp2);
+
+ dataPanel.add(vp);
+
+ }
+
+ private void addListners(){
+
+ btnResetAllFilters.addSelectionListener(new SelectionListener() {
+
+ @Override
+ public void componentSelected(ButtonEvent ce) {
+ resetAdvancedFields();
+
+ }
+ });
+ }
+
+ @Override
+ public void resetAdvancedFields() {
+
+ List> listChecks = checkGroup.getAll();
+
+ for (Field> item : listChecks) {
+ CheckBox checkBox = (CheckBox) item;
+ checkBox.reset();
+ }
+ }
+
+
+ @Override
+ public ContentPanel getPanel() {
+ return dataPanel;
+ }
+
+
+ @Override
+ public String getName() {
+ return AdvancedSearchPanelEnum.DATASOURCE.getLabel();
+ }
+
+
+ public List getCheckedGroupList() {
+
+ List listDS = new ArrayList();
+
+ List values = new ArrayList();
+
+ if(checkGroup.getValues().size()>0)
+ values = checkGroup.getValues();
+ else{
+ List> listChecks = checkGroup.getAll();
+ for (Field> field : listChecks) {
+ values.add((CheckBox) field);
+ }
+ }
+
+ for (CheckBox checkBox : values) {
+ if (checkBox.isEnabled())
+ listDS.add(new DataSourceModel(checkBox.getValueAttribute(), checkBox.getValueAttribute()));
+ }
+
+ if(listDS.size()==0)
+ return null;
+
+ return listDS;
+ }
+
+ private static Comparator COMPARATOR = new Comparator()
+ {
+ // This is where the sorting happens.
+ public int compare(DataSourceModel o1, DataSourceModel o2)
+ {
+ return o1.getName().compareToIgnoreCase(o2.getName());
+ }
+ };
+
+
+ public void loadDataSource(List result) {
+
+ Collections.sort(result, COMPARATOR);
+
+ if(result!=null){
+
+ for(DataSourceModel dsm: result){
+
+ System.out.println("Data Source name " + dsm.getName());
+ CheckBox check = null;
+
+ for (DataSourceCapability dsc : dsm.getListCapabilities()) {
+
+ System.out.println("\tData Source capability name: " + dsc.getCapability().getName());
+
+ if(dsc.getCapability().getName().compareTo(SpeciesCapability.RESULTITEM.getName())==0){
+
+ check = createCheckBox(dsm, SpeciesCapability.RESULTITEM.getName());
+ checkGroupOccurrences.add(check);
+// if(dsm.getDataSourceRepositoryInfo()!=null)
+// listDataSourceOccurrences.add(dsm);
+ hashMapDataSourceOccurrences.put(dsm.getName(), dsm);
+
+
+ System.out.println("\t\t added check " + dsm.getName() + " to checkGroupOccurences " + dsc.getCapability().getName());
+
+ checkGroup.add(check);
+
+ }
+
+ if(dsc.getCapability().getName().compareTo(SpeciesCapability.TAXONOMYITEM.getName())==0){
+
+ check = createCheckBox(dsm, SpeciesCapability.TAXONOMYITEM.getName());
+ checkGroupClassification.add(check);
+// if(dsm.getDataSourceRepositoryInfo()!=null)
+// listDataSourceClassification.add(dsm);
+
+ hashMapDataSourceClassification.put(dsm.getName(), dsm);
+
+ System.out.println("\t\t added check " + dsm.getName() + " to checkGroupClassification " + dsc.getCapability().getName());
+
+ checkGroup.add(check);
+ }
+ }
+ }
+ setVisibility();
+ }
+ }
+
+ private void setVisibility() {
+
+ if(checkGroup.getAll().size()==0)
+ checkGroup.setVisible(false);
+ }
+
+
+ public void enableCheckByCapability(SpeciesCapability capability){
+ setEnableAllCheck(false, checkGroupClassification);
+ setEnableAllCheck(false, checkGroupOccurrences);
+ setCheckByCapability(true,capability);
+ }
+
+
+ private void setCheckByCapability(boolean enable, SpeciesCapability capability){
+
+ if(capability.getName().compareTo(SpeciesCapability.TAXONOMYITEM.getName())==0){
+ setEnableAllCheck(enable, checkGroupClassification);
+// checkGroupClassification.setEnabled(enable);
+ setValueAllCheck(enable, checkGroupClassification);
+ }
+ else if(capability.getName().compareTo(SpeciesCapability.RESULTITEM.getName())==0){
+ setEnableAllCheck(enable, checkGroupOccurrences);
+// checkGroupOccurences.setEnabled(enable);
+ setValueAllCheck(enable, checkGroupOccurrences);
+ }
+ }
+
+ public void setValueAllCheck(boolean checkValue, CheckBoxGroup checksGroup){
+
+ List> listChecks = checksGroup.getAll();
+
+ for (Field> item : listChecks) {
+ CheckBox check = (CheckBox) item;
+ check.setValue(checkValue);
+ }
+ }
+
+
+ public void setEnableAllCheck(boolean checkValue, CheckBoxGroup checksGroup){
+
+ List> listChecks = checksGroup.getAll();
+
+ for (Field> item : listChecks) {
+ CheckBox check = (CheckBox) item;
+ check.setEnabled(checkValue);
+ }
+ }
+
+ private CheckBox createCheckBox(DataSourceModel dsm, String property){
+
+ CheckBox check = new CheckBox();
+// check.setId(dsm.getId());
+// check.setBoxLabel(dsm.getName() + " ("+property+")");
+ check.setBoxLabel(dsm.getName());
+ check.setValueAttribute(dsm.getName());
+ check.setData("capability", dsm);
+ check.setToolTip(new ToolTipConfig(dsm.getDescription()));
+ return check;
+
+ }
+
+
+ @Override
+ public ArrayList getAvailablePlugIn() {
+ return null;
+ }
+
+
+ public HashMap getHashMapDataSourceClassification() {
+ return hashMapDataSourceClassification;
+ }
+
+
+ public HashMap getHashMapDataSourceOccurrences() {
+ return hashMapDataSourceOccurrences;
+ }
+}
diff --git a/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/advancedsearch/DateFilter.java b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/advancedsearch/DateFilter.java
new file mode 100644
index 0000000..18f262f
--- /dev/null
+++ b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/advancedsearch/DateFilter.java
@@ -0,0 +1,207 @@
+package org.gcube.portlets.user.speciesdiscovery.client.advancedsearch;
+
+import java.util.ArrayList;
+
+import org.gcube.portlets.user.speciesdiscovery.client.ConstantsSpeciesDiscovery;
+import org.gcube.portlets.user.speciesdiscovery.client.resources.Resources;
+import org.gcube.portlets.user.speciesdiscovery.shared.DataSourceModel;
+import org.gcube.portlets.user.speciesdiscovery.shared.SpeciesCapability;
+
+import com.extjs.gxt.ui.client.Style.Scroll;
+import com.extjs.gxt.ui.client.event.ButtonEvent;
+import com.extjs.gxt.ui.client.event.Events;
+import com.extjs.gxt.ui.client.event.FieldEvent;
+import com.extjs.gxt.ui.client.event.Listener;
+import com.extjs.gxt.ui.client.event.SelectionListener;
+import com.extjs.gxt.ui.client.widget.ContentPanel;
+import com.extjs.gxt.ui.client.widget.HorizontalPanel;
+import com.extjs.gxt.ui.client.widget.button.Button;
+import com.extjs.gxt.ui.client.widget.button.ButtonBar;
+import com.extjs.gxt.ui.client.widget.button.ToggleButton;
+import com.extjs.gxt.ui.client.widget.form.DateField;
+import com.extjs.gxt.ui.client.widget.form.MultiField;
+import com.extjs.gxt.ui.client.widget.form.TextArea;
+import com.extjs.gxt.ui.client.widget.layout.FitLayout;
+import com.google.gwt.user.client.ui.AbstractImagePrototype;
+
+/**
+ * @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
+ *
+ */
+public class DateFilter extends ColumnContainer implements AdvancedSearchPanelInterface {
+
+ private DateField fromDate;
+ private DateField toDate;
+ private Button btnResetAllFilters = new Button("Reset Filters");
+ private ContentPanel dateFilterPanel = new ContentPanel();
+ private ArrayList availablePlugin;
+ private TextArea txtAreaInfo = new TextArea();
+
+ @Override
+ public ContentPanel getPanel() {
+ return dateFilterPanel;
+ }
+
+ @Override
+ public String getName() {
+ return AdvancedSearchPanelEnum.DATE.getLabel();
+ }
+
+ public DateFilter(){
+ initDateFilter();
+ btnResetAllFilters.setStyleName("button-hyperlink");
+ availablePlugin = new ArrayList();
+ }
+
+ private void initDateFilter() {
+
+ dateFilterPanel.setHeaderVisible(false);
+ dateFilterPanel.setBodyBorder(false);
+
+ fromDate = new DateField();
+ fromDate.setStyleAttribute("marginRight", "15px");
+ fromDate.setEmptyText("From");
+
+ toDate = new DateField();
+ toDate.setEmptyText("To");
+
+ MultiField dateField = new MultiField("Date bounds", fromDate, toDate);
+ dateField.setSpacing(5);
+
+
+ left.add(dateField);
+// right.add(btnResetAllFilters);
+
+
+ btnResetAllFilters.addSelectionListener(new SelectionListener() {
+
+ @Override
+ public void componentSelected(ButtonEvent ce) {
+ resetAdvancedFields();
+
+ }
+ });
+
+
+ dateFilterPanel.add(columnContainer);
+
+ fromDate.addListener(Events.Change, new Listener() {
+
+ @Override
+ public void handleEvent(FieldEvent be) {
+
+ if(fromDate.isValid())
+ toDate.setMinValue(fromDate.getValue());
+ else{
+// toDate.reset();
+ toDate.getDatePicker().clearState();
+ }
+ }
+ });
+
+ toDate.addListener(Events.Change, new Listener() {
+
+ @Override
+ public void handleEvent(FieldEvent be) {
+
+ if(toDate.isValid()){
+ fromDate.setMaxValue(toDate.getValue());
+ }
+ else{
+// fromDate.reset();
+ fromDate.getDatePicker().clearState();
+ }
+ }
+ });
+
+ final ContentPanel cp = new ContentPanel();
+ ButtonBar buttonBar = new ButtonBar();
+
+ ToggleButton toggleInfo = new ToggleButton("");
+ toggleInfo.addSelectionListener(new SelectionListener() {
+ public void componentSelected(ButtonEvent ce) {
+
+ if (cp.isVisible()) {
+// cp.el().slideOut(Direction.LEFT, FxConfig.NONE);
+ cp.setVisible(false);
+ } else {
+ cp.setVisible(true);
+// cp.el().slideIn(Direction.RIGHT, FxConfig.NONE);
+
+ }
+// cp.setVisible(true);
+// cp.el().fadeToggle(FxConfig.NONE);
+ }
+ });
+
+ toggleInfo.setIcon(AbstractImagePrototype.create(Resources.INSTANCE.getInfoIcon()));
+
+ toggleInfo.toggle(false);
+
+// buttonBar.add(btnResetAllFilters);
+
+ buttonBar.add(toggleInfo);
+
+ cp.setVisible(false);
+ cp.setHeading("Bounds");
+ cp.setBodyBorder(false);
+
+ txtAreaInfo.setReadOnly(true);
+ txtAreaInfo.setValue(ConstantsSpeciesDiscovery.AVAILABLEFILTERDATE + ": \n");
+
+ cp.setLayout(new FitLayout());
+
+ cp.add(txtAreaInfo);
+ cp.setWidth(300);
+ cp.setHeight(50);
+ cp.setScrollMode(Scroll.AUTOY);
+ cp.setHeaderVisible(false);
+
+
+ HorizontalPanel hp = new HorizontalPanel();
+ cp.setWidth(310);
+// hp.setSpacing(5);
+
+ cp.setStyleAttribute("margin-left", "5px");
+ cp.setStyleAttribute("margin-top", "2px");
+
+ toggleInfo.setStyleAttribute("margin-left", "5px");
+ toggleInfo.setStyleAttribute("margin-top", "2px");
+
+ hp.add(btnResetAllFilters);
+ hp.add(cp);
+ hp.add(toggleInfo);
+
+ right.add(hp);
+
+ }
+
+ public void resetAdvancedFields() {
+ fromDate.getDatePicker().clearState();
+ toDate.getDatePicker().clearState();
+ fromDate.reset();
+ toDate.reset();
+
+ }
+
+ public DateField getFromDate() {
+ return fromDate;
+ }
+
+ public DateField getToDate() {
+ return toDate;
+ }
+
+ public void addAvailablePlugInfo(DataSourceModel plugin, SpeciesCapability capability){
+
+ availablePlugin.add(plugin);
+ String currentValue = txtAreaInfo.getValue();
+ txtAreaInfo.setValue(currentValue + plugin.getName() + " (" + capability.getName() + "); \n");
+ }
+
+ @Override
+ public ArrayList getAvailablePlugIn() {
+ return availablePlugin;
+ }
+
+}
diff --git a/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/advancedsearch/RegionFilter.java b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/advancedsearch/RegionFilter.java
new file mode 100644
index 0000000..5dcbdbf
--- /dev/null
+++ b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/advancedsearch/RegionFilter.java
@@ -0,0 +1,57 @@
+package org.gcube.portlets.user.speciesdiscovery.client.advancedsearch;
+
+import java.util.ArrayList;
+
+import org.gcube.portlets.user.speciesdiscovery.shared.DataSourceModel;
+
+import com.extjs.gxt.ui.client.widget.ContentPanel;
+import com.extjs.gxt.ui.client.widget.button.Button;
+
+/**
+ * @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
+ *
+ */
+public class RegionFilter extends ColumnContainer implements AdvancedSearchPanelInterface {
+
+ private Button btnResetAllFilters = new Button("Reset Filters");
+ private ContentPanel regionFilterPanel = new ContentPanel();
+
+ public RegionFilter() {
+ init();
+ btnResetAllFilters.setStyleName("button-hyperlink");
+ }
+
+
+ private void init() {
+
+ regionFilterPanel.setHeaderVisible(false);
+ regionFilterPanel.setBodyBorder(false);
+
+ }
+
+
+ @Override
+ public ContentPanel getPanel() {
+ return regionFilterPanel;
+ }
+
+ @Override
+ public String getName() {
+ return AdvancedSearchPanelEnum.REGION.getLabel();
+ }
+
+ @Override
+ public void resetAdvancedFields() {
+ // TODO Auto-generated method stub
+
+ }
+
+
+ @Override
+ public ArrayList getAvailablePlugIn() {
+ return null;
+ }
+
+
+
+}
diff --git a/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/cluster/TabItemForTaxonomyRow.java b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/cluster/TabItemForTaxonomyRow.java
new file mode 100644
index 0000000..6a270d3
--- /dev/null
+++ b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/cluster/TabItemForTaxonomyRow.java
@@ -0,0 +1,886 @@
+package org.gcube.portlets.user.speciesdiscovery.client.cluster;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.gcube.portlets.user.speciesdiscovery.client.SpeciesDiscovery;
+import org.gcube.portlets.user.speciesdiscovery.client.resources.Resources;
+import org.gcube.portlets.user.speciesdiscovery.client.util.TaxonomyGridField;
+import org.gcube.portlets.user.speciesdiscovery.shared.CommonName;
+import org.gcube.portlets.user.speciesdiscovery.shared.ItemParameter;
+import org.gcube.portlets.user.speciesdiscovery.shared.TaxonomyRow;
+import org.gcube.portlets.user.speciesdiscovery.shared.util.NormalizeString;
+
+import com.allen_sauer.gwt.log.client.Log;
+import com.extjs.gxt.ui.client.widget.ContentPanel;
+import com.extjs.gxt.ui.client.widget.Html;
+import com.extjs.gxt.ui.client.widget.Info;
+import com.extjs.gxt.ui.client.widget.LayoutContainer;
+import com.extjs.gxt.ui.client.widget.TabPanel;
+import com.extjs.gxt.ui.client.widget.Text;
+import com.extjs.gxt.ui.client.widget.VerticalPanel;
+import com.extjs.gxt.ui.client.widget.layout.ColumnLayout;
+import com.google.gwt.event.dom.client.ClickEvent;
+import com.google.gwt.event.dom.client.ClickHandler;
+import com.google.gwt.event.shared.EventBus;
+import com.google.gwt.user.client.rpc.AsyncCallback;
+import com.google.gwt.user.client.ui.AbstractImagePrototype;
+import com.google.gwt.user.client.ui.Anchor;
+import com.google.gwt.user.client.ui.FlexTable;
+import com.google.gwt.user.client.ui.HorizontalPanel;
+import com.google.gwt.user.client.ui.Image;
+import com.google.gwt.user.client.ui.Label;
+
+/**
+ *
+ * @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
+ *
+ */
+public class TabItemForTaxonomyRow {
+
+ private TabPanel tabPanel;
+ private AbstractImagePrototype imageLoading = AbstractImagePrototype.create(Resources.INSTANCE.loadingBalls());
+ private EventBus eventBus;
+
+// private List parents = null;
+ private TablesForTaxonomyRow tablesForTaxonomyRow;
+
+ private TaxonomyRow currentTaxonomy;
+
+ public void setCurrentTaxonomy(TaxonomyRow taxonomy){
+ this.currentTaxonomy = taxonomy;
+ }
+
+
+ public TabItemForTaxonomyRow(TablesForTaxonomyRow tablesForTaxonomyRow, TabPanel tabPanel2, EventBus eventBus2) {
+ this.tablesForTaxonomyRow = tablesForTaxonomyRow;
+ this.tabPanel = tabPanel2;
+ this.eventBus = eventBus2;
+ }
+
+
+ /**
+ *
+ * @param taxonomy
+ * @param isNewTab - set true if has been clicked a classification link, or false otherwise
+ * @return
+ */
+
+ public VerticalPanel getPanelClassificationForTaxonomy(TaxonomyRow taxonomy, String dataSource, boolean isNewTab){
+
+ VerticalPanel vpClassification = new VerticalPanel();
+ vpClassification.setSpacing(5);
+
+ if(taxonomy!=null){
+
+ //CREATE CLASSIFICATION FOR PARENT ITEM
+ int parentsSize = taxonomy.getParents().size();
+ for(int i=parentsSize-1; i>=0; i--){
+ createPanelForParentTaxonomy(taxonomy.getParents().get(i), vpClassification, taxonomy.getServiceId(), isNewTab, dataSource, i+1);
+ }
+
+ //CREATE CLASSIFICATION FOR ITEM
+ createPanelForParentTaxonomy(taxonomy, vpClassification, taxonomy.getServiceId(), isNewTab, dataSource, 0);
+ }
+
+ return vpClassification;
+
+ }
+
+ /**
+ * Create a scientific classification: for each parent rank create a link, for current search item create a label
+ * @param taxon
+ * @param vpClassification
+ * @param taxonomyServiceId
+ * @param isNewTab
+ * @param parentIndex
+ */
+ public void createPanelForParentTaxonomy(TaxonomyRow taxon, VerticalPanel vpClassification, String taxonomyServiceId, boolean isNewTab, String dataSource, int parentIndex){
+
+ if(taxon==null)
+ return;
+
+// createPanelForParentTaxonomy(taxon.getParents(), vpClassification, taxonomyServiceId, isNewTab, dataSource);
+
+ HorizontalPanel hp = new HorizontalPanel();
+ Text labelRank;
+ if(!NormalizeString.isUndefined(taxon.getRank()))
+ labelRank = new Text(taxon.getRank()+":");
+ else
+ labelRank = new Text("Rank not found"+":");
+// labelRank.setStyleAttribute("margin-right", "10px");
+ hp.add(labelRank);
+ hp.setCellWidth(labelRank, "120px");
+
+ Anchor anchor = getAnchorByTaxonomy(taxon, dataSource, parentIndex);
+ hp.add(anchor);
+ hp.setCellHorizontalAlignment(anchor, HorizontalPanel.ALIGN_LEFT);
+ vpClassification.add(hp);
+
+ //DEBUG
+// System.out.println("taxon.getName()" +taxon.getName() + " serviceid : "+taxon.getServiceId() + " taxonomyServiceId "+taxonomyServiceId);
+// System.out.println("taxon.getServiceId().compareTo(taxonomyServiceId)==0 "+ taxon.getServiceId().compareTo(taxonomyServiceId));
+// System.out.println("isNewTab"+ isNewTab);
+ if((taxon.getServiceId().compareTo(taxonomyServiceId)==0) && isNewTab){
+ loadChildrenListOfItem(vpClassification, taxon, dataSource, taxon.getName(), -1); //parentIndex == -1 means that parent is currentTaxonomy
+ }
+ }
+
+ private void loadChildrenListOfItem(final VerticalPanel vpClassification, final TaxonomyRow taxonomyItem, final String dataSource, final String parentName, final int parentIndex){
+
+ final ContentPanel cp = new ContentPanel();
+ cp.setId("cp" + taxonomyItem.getId());
+ cp.setHeaderVisible(false);
+ cp.setBodyBorder(false);
+ cp.add(imageLoading.createImage());
+ vpClassification.add(cp);
+
+ //FOR DEBUG
+// TaxonomyRow printParent = taxonomyItem;
+ System.out.println("Load child of item name: " + parentName + " parent id: " + taxonomyItem.getServiceId());
+// while(printParent!=null){
+//
+// System.out.println("Parent Name: " + printParent.getName() + " parent id: " +printParent.getServiceId());
+// printParent = printParent.getParent();
+// }
+
+ SpeciesDiscovery.taxonomySearchService.loadListChildByParentId(taxonomyItem.getServiceId(), new AsyncCallback>() {
+
+ @Override
+ public void onSuccess(ArrayList result) {
+ Log.trace("Children returned in client: " + result.size() + " for parentName " +parentName);
+
+ LayoutContainer lc = new LayoutContainer();
+ lc.setLayout(new ColumnLayout());
+
+ vpClassification.remove(cp);
+
+ HorizontalPanel hp = new HorizontalPanel();
+ Text labelRank = new Text("Rank not found:");
+ hp.add(labelRank);
+ hp.setCellWidth(labelRank, "120px");
+
+ boolean setRank = false;
+
+ if(result.size()>0){
+ for (int i=0; i"+taxon.getName()+"", true);
+
+ anchor.addClickHandler(new ClickHandler() {
+
+ @Override
+ public void onClick(ClickEvent event) {
+
+ System.out.println("parent index: "+parentIndex + " size "+currentTaxonomy.getParents().size());
+
+ if(parentIndex >=0 && parentIndex<=currentTaxonomy.getParents().size()){
+ System.out.println("set parent true");
+ taxon.setParent(currentTaxonomy.getParents().subList(parentIndex, currentTaxonomy.getParents().size()));
+ }
+ else if(parentIndex == -1){ //items loaded from get children - the current Taxonomy item is the parent
+
+ List list = new ArrayList();
+ list.add(currentTaxonomy);
+ list.addAll(currentTaxonomy.getParents());
+
+ System.out.println("parentIndex == -1");
+ printParents(taxon);
+ taxon.setParent(list);
+ }
+
+
+ printParents(taxon);
+
+ tablesForTaxonomyRow.addTabItem(taxon, dataSource);
+
+ }
+ });
+ }
+
+ return anchor;
+ }
+
+
+ void printParents(TaxonomyRow taxon){
+
+ System.out.println("principal "+taxon.getName());
+ int i = 0;
+ for (TaxonomyRow tax : taxon.getParents()) {
+ System.out.println(++i + " parent name " + tax.getName());
+ }
+ }
+
+
+ private Text getLabelByTaxonomy(final TaxonomyRow taxon)
+ {
+ Text label = null;
+
+ if(taxon!=null){
+ if(!NormalizeString.isUndefined(taxon.getName()))
+ label = new Text(taxon.getName());
+ else
+ label = new Text("Name not found");
+ }
+ return label;
+ }
+
+ public Html getHTMLTableForTaxonomy(TaxonomyRow row, boolean isNewTab){
+
+ //Init values
+ String dataProviderName = "";
+ String dataSetCitation= "";
+ String matchingAccordionTo= "";
+ String rank= "";
+// String matchingCredits= "";
+
+ String statusName = "";
+ String dateModified = "";
+ String statusRemark = "";
+
+ String author = "";
+ String lsid = "";
+ String credits = "";
+
+ String propertiesHtml = "";
+
+ if(row.getDataProviderName()!=null) dataProviderName = row.getDataProviderName();
+ if(row.getStatusName()!=null) statusName = row.getStatusName();
+ if(row.getDateModified()!=null) dateModified = row.getDateModified();
+
+ if(row.getDataSetCitation()!=null) dataSetCitation = row.getDataSetCitation();
+ if(row.getRank()!=null) rank = row.getRank();
+ if(row.getAccordingTo()!=null) matchingAccordionTo = row.getAccordingTo();
+
+ if(row.getStatusRemarks()!=null) statusRemark = row.getStatusRemarks();
+
+ if(row.getAuthor()!=null) author = row.getAuthor();
+
+ if(row.getLsid()!=null) lsid = row.getLsid();
+
+ if(row.getCredits()!=null) credits = row.getCredits();
+
+
+ if(row.getProperties()!=null){
+
+ List hashProperties = row.getProperties();
+ Collections.sort(hashProperties, ItemParameter.COMPARATOR);
+
+ propertiesHtml+="";
+
+ for (ItemParameter itemParameter : hashProperties) {
+
+ propertiesHtml+=
+ "" +
+ " "+itemParameter.getKey()+" | " +
+ " "+itemParameter.getValue()+" | " +
+ "
";
+ }
+
+ propertiesHtml+="
";
+ }
+
+
+ //Create list common name
+ String commonNames = "";
+
+// if(isNewTab){
+ if(row.getCommonNames()!=null){
+ for (CommonName comName : row.getCommonNames()) {
+ commonNames+= ""+comName.getName()+"" +" ("+comName.getLanguage()+") - ";
+ }
+ }
+// }
+
+
+ String table = "";
+
+// if(isNewTab)
+ table+=
+ "" +
+ " "+TaxonomyGridField.COMMON_NAMES.getName()+" (Language) | " +
+ " "+commonNames+" | " +
+ "
";
+
+
+ table+="" +
+ " "+TaxonomyGridField.STATUSREFNAME.getName()+" | " +
+ " "+statusName+" | " +
+ "
" +
+ "" +
+ " "+TaxonomyGridField.STATUS_REMARKS.getName()+" | " +
+ " "+statusRemark+" | " +
+ "
" +
+ "" +
+ " "+TaxonomyGridField.DATASOURCE.getName()+" | " +
+ " "+dataProviderName+" | " +
+ "
" +
+ "" +
+ " "+TaxonomyGridField.DATEMODIFIED.getName()+" | " +
+ " "+dateModified+" | " +
+ "
" +
+ "" +
+ " "+TaxonomyGridField.MATCHING_RANK.getName()+" | " +
+ " "+rank+" | " +
+ "
" +
+ "" +
+ " "+TaxonomyGridField.CITATION.getName()+" | " +
+ " "+dataSetCitation+" | " +
+ "
" +
+// "" +
+// " "+TaxonomyGridField.MATCHING_AUTHOR.getName()+" | " +
+// " "+matchingAccordionTo+" | " +
+// "
" +
+ "" +
+ " "+TaxonomyGridField.LSID.getName()+" | " +
+ " "+lsid+" | " +
+ "
" +
+ "" +
+ " "+TaxonomyGridField.AUTHOR.getName()+" | " +
+ " "+author+" | " +
+ "
" +
+ "" +
+ " "+TaxonomyGridField.CREDITS.getName()+" | " +
+ " "+credits+" | " +
+ "
" +
+
+ "" +
+ " "+TaxonomyGridField.PROPERTIES.getName()+" | " +
+ " "+propertiesHtml+" | " +
+ "
" +
+
+ "
";
+ return new Html(table);
+
+ }
+
+
+ public FlexTable getHTMLTableForTaxonomyWithRef(final TaxonomyRow row,boolean isNewTab, final String dataSource) {
+
+ // Init values
+ String dataProviderName = "";
+ String dataSetCitation = "";
+ String matchingAccordionTo = "";
+ String rank = "";
+ // String matchingCredits= "";
+
+ String statusName = "";
+ String dateModified = "";
+ String statusRemark = "";
+
+ String author = "";
+ String lsid = "";
+ String credits = "";
+
+ String refId = null;
+
+ String propertiesHtml = "";
+
+ if (row.getDataProviderName() != null)
+ dataProviderName = row.getDataProviderName();
+ if (row.getStatusName() != null)
+ statusName = row.getStatusName();
+ if (row.getDateModified() != null)
+ dateModified = row.getDateModified();
+
+ if (row.getDataSetCitation() != null)
+ dataSetCitation = row.getDataSetCitation();
+ if (row.getRank() != null)
+ rank = row.getRank();
+ if (row.getAccordingTo() != null)
+ matchingAccordionTo = row.getAccordingTo();
+
+ if (row.getStatusRemarks() != null)
+ statusRemark = row.getStatusRemarks();
+
+ if (row.getAuthor() != null)
+ author = row.getAuthor();
+
+ if (row.getLsid() != null)
+ lsid = row.getLsid();
+
+ if (row.getCredits() != null)
+ credits = row.getCredits();
+
+ if (row.getStatusRefId() != null && !row.getStatusRefId().isEmpty())
+ refId = row.getStatusRefId();
+
+ if (row.getProperties() != null) {
+
+ List hashProperties = row.getProperties();
+ Collections.sort(hashProperties,
+ ItemParameter.COMPARATOR);
+
+ propertiesHtml += "";
+
+ for (ItemParameter itemParameter : hashProperties) {
+
+ propertiesHtml += "" + " "
+ + itemParameter.getKey() + " | " + " "
+ + itemParameter.getValue() + " | " + "
";
+ }
+
+ propertiesHtml += "
";
+ }
+
+ // Create list common name
+ String commonNames = "";
+
+ // if(isNewTab){
+ if (row.getCommonNames() != null) {
+ for (CommonName comName : row.getCommonNames()) {
+ commonNames += "" + comName.getName() + "" + " ("
+ + comName.getLanguage() + ") - ";
+ }
+ }
+ // }
+
+ final FlexTable flexTable = new FlexTable();
+
+ flexTable.setStyleName("imagetable");
+
+ flexTable.setWidget(0, 0,new Label(TaxonomyGridField.COMMON_NAMES.getName()));
+ flexTable.setWidget(0, 1, new Html(commonNames));
+
+ flexTable.setWidget(1, 0,new Label(TaxonomyGridField.STATUSREFNAME.getName()));
+ flexTable.setWidget(1, 1, new Label(statusName));
+
+ if (refId != null) {
+
+ final String status;
+
+ if(!statusRemark.isEmpty())
+ status = statusRemark;
+ else
+ status = statusName;
+
+ final String referenceId = refId;
+
+ flexTable.setWidget(2, 0, new Label(TaxonomyGridField.STATUS_REMARKS.getName()));
+
+ AbstractImagePrototype synonyms = AbstractImagePrototype.create(Resources.INSTANCE.getSearch());
+
+ final Image imageStatusRemark = synonyms.createImage();
+ imageStatusRemark.setStyleName("image-load-synonyms");
+ imageStatusRemark.setAltText("show accepted name");
+ imageStatusRemark.setTitle("show accepted name");
+ final LayoutContainer layoutContainer = new LayoutContainer();
+
+ final Label labelStatusRemark = new Label(statusRemark);
+ labelStatusRemark.addStyleName("status-of");
+ layoutContainer.add(labelStatusRemark);
+
+ imageStatusRemark.addClickHandler(new ClickHandler() {
+
+ @Override
+ public void onClick(ClickEvent event) {
+ flexTable.remove(layoutContainer);
+ if(row.getParents().size()>0)
+ getTaxonomyByReferenceId(flexTable, 2, 1, status, referenceId, dataSource, row.getParents());
+
+ }
+ });
+
+ layoutContainer.add(labelStatusRemark);
+ layoutContainer.add(imageStatusRemark);
+
+ flexTable.setWidget(2, 1, layoutContainer);
+
+ } else {
+ flexTable.setWidget(2, 0, new Label(TaxonomyGridField.STATUS_REMARKS.getName()));
+ flexTable.setWidget(2, 1, new Label(statusRemark));
+ }
+
+
+ //Create row get synonyms
+ flexTable.setWidget(3, 0,new Label(TaxonomyGridField.SYNONYMS.getName()));
+
+ AbstractImagePrototype synonyms = AbstractImagePrototype.create(Resources.INSTANCE.getSearch());
+
+ final Image imageSynonyms = synonyms.createImage();
+ imageSynonyms.setStyleName("image-load-synonyms");
+ imageSynonyms.setAltText("show synonyms");
+ imageSynonyms.setTitle("show synonyms");
+
+ imageSynonyms.addClickHandler(new ClickHandler() {
+
+ @Override
+ public void onClick(ClickEvent event) {
+ flexTable.remove(imageSynonyms);
+
+// DEBUG
+// System.out.println("getSynonyms of "+row.getName() + " serviceId "+row.getServiceId());
+
+
+ if(row.getParents().size()>0){
+
+
+ //TODO
+ getSynonymsByReferenceId(flexTable, 3, 1, row.getServiceId(),dataSource, row.getParents());
+
+
+
+ }
+ }
+ });
+
+ flexTable.setWidget(3, 1, imageSynonyms);
+
+
+ flexTable.setWidget(4, 0,new Label(TaxonomyGridField.DATASOURCE.getName()));
+ flexTable.setWidget(4, 1, new Label(dataProviderName));
+
+ flexTable.setWidget(5, 0,new Label(TaxonomyGridField.DATEMODIFIED.getName()));
+ flexTable.setWidget(5, 1, new Label(dateModified));
+
+ flexTable.setWidget(6, 0,
+ new Label(TaxonomyGridField.MATCHING_RANK.getName()));
+ flexTable.setWidget(6, 1, new Label(rank));
+
+ flexTable.setWidget(7, 0,
+ new Label(TaxonomyGridField.CITATION.getName()));
+ flexTable.setWidget(7, 1, new Label(dataSetCitation));
+
+ flexTable.setWidget(8, 0, new Label(TaxonomyGridField.LSID.getName()));
+ flexTable.setWidget(8, 1, new Label(lsid));
+
+ flexTable
+ .setWidget(9, 0, new Label(TaxonomyGridField.AUTHOR.getName()));
+ flexTable.setWidget(9, 1, new Label(author));
+
+ flexTable.setWidget(10, 0,
+ new Label(TaxonomyGridField.CREDITS.getName()));
+ flexTable.setWidget(10, 1, new Label(credits));
+
+ flexTable.setWidget(11, 0,
+ new Label(TaxonomyGridField.PROPERTIES.getName()));
+ flexTable.setWidget(11, 1, new Html(propertiesHtml));
+
+ for (int i = 0; i < flexTable.getRowCount(); i++) {
+ flexTable.getFlexCellFormatter().setStyleName(i, 0, "title");
+ }
+
+ return flexTable;
+
+ }
+
+ public void getSynonymsByReferenceId(FlexTable flexTable, int row, int col, String refId, final String dataSource, final List parents){
+
+ final LayoutContainer layoutContainer = new LayoutContainer();
+ final Image loading = AbstractImagePrototype.create(Resources.INSTANCE.loadingBalls()).createImage();
+ layoutContainer.add(loading);
+
+ flexTable.setWidget(row, col, layoutContainer);
+
+ SpeciesDiscovery.taxonomySearchService.retrieveSynonymsByRefId(refId, new AsyncCallback>() {
+
+ @Override
+ public void onFailure(Throwable caught) {
+ Info.display("Error laoding child", "An error occurred in loading, retry.");
+ Log.error("Error laoding child", "An error occurred in loading, retry." +caught);
+
+ }
+
+ @Override
+ public void onSuccess(List result) {
+
+ Log.trace("getReferenceById return " +result.size() + " items");
+// System.out.println("getReferenceById return " +result.size() + " items");
+ if(result.size()>0){
+ layoutContainer.remove(loading);
+
+ LayoutContainer lc = new LayoutContainer();
+ lc.setLayout(new ColumnLayout());
+
+ if(result.size()>0){
+ for (int i=0; i parents){
+
+ final LayoutContainer layoutContainer = new LayoutContainer();
+// hp.getElement().getStyle().setBorderStyle(BorderStyle.NONE);
+// hp.getElement().getStyle().setBorderWidth(0, Unit.PX);
+ final Label status = new Label(statusRemark);
+
+ layoutContainer.add(status);
+// hp.setCellWidth(status, "160px");
+ final Image loading = AbstractImagePrototype.create(Resources.INSTANCE.loadingBalls()).createImage();
+ layoutContainer.add(loading);
+
+ flexTable.setWidget(row, col, layoutContainer);
+
+ List listId = new ArrayList();
+ listId.add(refId);
+
+ SpeciesDiscovery.taxonomySearchService.retrieveTaxonomyByIds(listId, new AsyncCallback>() {
+
+ @Override
+ public void onFailure(Throwable caught) {
+ Info.display("Error laoding child", "An error occurred in loading, retry.");
+ Log.error("Error laoding child", "An error occurred in loading, retry." +caught);
+
+ }
+
+ @Override
+ public void onSuccess(List result) {
+
+ Log.trace("getReferenceById return " +result.size() + " items");
+// System.out.println("getReferenceById return " +result.size() + " items");
+ if(result.size()>0){
+ layoutContainer.remove(status);
+ layoutContainer.remove(loading);
+
+ Label labelOf = new Label(statusRemark + " for ");
+ layoutContainer.add(labelOf);
+
+ LayoutContainer lc = new LayoutContainer();
+ lc.setLayout(new ColumnLayout());
+
+ if(result.size()>0){
+ for (int i=0; i
" + taxon.getName() + "
"));
+// contentPanel.add(new Html("
Scientific Classification
"));
+//
+// contentPanel.add(getPanelClassificationForTaxonomy(taxon, dataSource, isNewTab));
+//
+// contentPanel.add(getHTMLTableForTaxonomyWithRef(taxon, isNewTab, dataSource,parentIndex));
+//
+// return contentPanel;
+//
+// }
+
+// protected void addTabItem(final TaxonomyRow taxon, final String dataSource, final int parentIndex){
+//
+//
+// TabItem tabItem = new TabItem();
+//// tabItem.setLayout(new FitLayout());
+// tabItem.setScrollMode(Scroll.AUTO);
+// tabItem.setClosable(true);
+//
+//
+// ContentPanel cp = new ContentPanel();
+// cp.setHeaderVisible(false);
+// ToolBar toolbar = new ToolBar();
+//
+//
+// Button btnSaveTaxonomyChildren = new Button(ConstantsSpeciesDiscovery.SAVE_TAXONOMY_CHILDREN);
+// Menu formatSubMenu = new Menu();
+// btnSaveTaxonomyChildren.setMenu(formatSubMenu);
+// btnSaveTaxonomyChildren.setScale(ButtonScale.SMALL);
+// btnSaveTaxonomyChildren.setIconAlign(IconAlign.TOP);
+// btnSaveTaxonomyChildren.setIcon(AbstractImagePrototype.create(Resources.INSTANCE.getSaveProducts()));
+// btnSaveTaxonomyChildren.setToolTip(new ToolTipConfig(ConstantsSpeciesDiscovery.SAVE_TAXONOMY_CHILDREN, ConstantsSpeciesDiscovery.SAVES_TAXONOMY_CHILDREN_FROM_RESULT));
+//
+// MenuItem darwinCoreArchiveItem = new MenuItem(ConstantsSpeciesDiscovery.DARWIN_CORE_ARCHIVE);
+// darwinCoreArchiveItem.setToolTip(new ToolTipConfig(ConstantsSpeciesDiscovery.SAVES_IN_DARWIN_CORE_ARCHIVE_FORMAT));
+// darwinCoreArchiveItem.addSelectionListener(new SelectionListener() {
+//
+// @Override
+// public void componentSelected(MenuEvent ce) {
+// eventBus.fireEvent(new CreateTaxonomyJobEvent(taxon, dataSource, TaxonomyJobType.BYCHILDREN));
+// }
+// });
+//
+// formatSubMenu.add(darwinCoreArchiveItem);
+// toolbar.add(btnSaveTaxonomyChildren);
+//
+// cp.setTopComponent(toolbar);
+// cp.setBodyBorder(false);
+//// cp.setScrollMode(Scroll.AUTOY);
+//
+// String tabName = taxon.getName() + " ("+ dataSource + ")";
+// tabItem.setText(tabName);
+//
+// cp.add(getPanelForTaxonomy(taxon, dataSource, true, parentIndex));
+//
+// tabItem.add(cp);
+//
+// tabPanel.add(tabItem);
+//
+// }
+
+}
diff --git a/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/cluster/TablesForResultRow.java b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/cluster/TablesForResultRow.java
new file mode 100644
index 0000000..a2182d7
--- /dev/null
+++ b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/cluster/TablesForResultRow.java
@@ -0,0 +1,159 @@
+package org.gcube.portlets.user.speciesdiscovery.client.cluster;
+
+import java.util.Collections;
+import java.util.List;
+
+import org.gcube.portlets.user.speciesdiscovery.client.util.SpeciesGridFields;
+import org.gcube.portlets.user.speciesdiscovery.shared.CommonName;
+import org.gcube.portlets.user.speciesdiscovery.shared.ItemParameter;
+import org.gcube.portlets.user.speciesdiscovery.shared.ResultRow;
+
+import com.extjs.gxt.ui.client.widget.Html;
+
+/**
+ * @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
+ *
+ */
+public class TablesForResultRow {
+
+ public static Html getTableForResultRow(ResultRow row, String classification){
+
+ //Init values
+ String dataSourceName = "";
+ String dataProviderName = "";
+ String dataSetName = "";
+ String dataSetCitation= "";
+ String matchingTaxonName= "";
+ String matchingAccordionTo= "";
+ String matchingRank= "";
+ String matchingCredits= "";
+ int occurencesCount = 0;
+
+ String author = "";
+ String lsid = "";
+ String credits = "";
+
+ String propertiesHtml = "";
+
+
+ //Validate values
+ if(row.getParents()!=null){
+
+ if(row.getParents().get(0).getName()!=null) matchingTaxonName = row.getParents().get(0).getName();
+
+ if(row.getParents().get(0).getAccordingTo()!=null) matchingAccordionTo = row.getParents().get(0).getAccordingTo();
+
+ if(row.getParents().get(0).getRank()!=null) matchingRank = row.getParents().get(0).getRank();
+ }
+
+ if(row.getDataSourceName()!=null) dataSourceName = row.getDataSourceName();
+ if(row.getDataProviderName()!=null) dataProviderName = row.getDataProviderName();
+ if(row.getDataSetName()!=null) dataSetName = row.getDataSetName();
+ if(row.getDataSetCitation()!=null) dataSetCitation = row.getDataSetCitation();
+ if(row.getMatchingCredits()!=null) matchingCredits = row.getMatchingCredits();
+ if(row.getOccurencesCount()!=0) occurencesCount = row.getOccurencesCount();
+
+
+ String commonNames = "";
+ if(row.getCommonNames()!=null){
+ for (CommonName comName : row.getCommonNames()) {
+ commonNames+= ""+comName.getName()+"" +" ("+comName.getLanguage()+") - ";
+ }
+ }
+
+
+ if(row.getAuthor()!=null) author = row.getAuthor();
+
+ if(row.getLsid()!=null) lsid = row.getLsid();
+
+ if(row.getCredits()!=null) credits = row.getCredits();
+
+
+ if(row.getProperties()!=null){
+
+ List listProperties = row.getProperties();
+ Collections.sort(listProperties, ItemParameter.COMPARATOR);
+
+ propertiesHtml+="";
+
+ for (ItemParameter itemParameter : listProperties) {
+
+ propertiesHtml+=
+ "" +
+ " "+itemParameter.getKey()+" | " +
+ " "+itemParameter.getValue()+" | " +
+ "
";
+ }
+
+ propertiesHtml+="
";
+ }
+
+ String table = "" +
+ "" +
+ " "+matchingTaxonName+" | " +
+ "
" +
+ "" +
+ " "+SpeciesGridFields.CLASSIFICATION_STRING.getName()+" | " +
+ " "+classification+" | " +
+ "
" +
+ "" +
+ " "+SpeciesGridFields.COMMON_NAMES.getName()+" (Language) | " +
+ " "+commonNames+" | " +
+ "
" +
+
+ "" +
+ " "+SpeciesGridFields.DATASOURCE.getName()+" | " +
+ " "+dataSourceName+" | " +
+ "
" +
+ "" +
+ " "+SpeciesGridFields.DATAPROVIDER.getName()+" | " +
+ " "+dataProviderName+" | " +
+ "
" +
+ "" +
+ " "+SpeciesGridFields.DATASET.getName()+" | " +
+ " "+dataSetName+" | " +
+ "
" +
+// "" +
+// " "+SpeciesGridFields.MATCHING_AUTHOR.getName()+" | " +
+// " "+matchingAccordionTo+" | " +
+// "
" +
+ "" +
+ " "+SpeciesGridFields.MATCHING_RANK.getName()+" | " +
+ " "+matchingRank+" | " +
+ "
" +
+ "" +
+ " "+SpeciesGridFields.DATASET_CITATION.getName()+" | " +
+ " "+dataSetCitation+" | " +
+ "
" +
+// "" +
+// " "+SpeciesGridFields.MATCHING_CREDITS.getName()+" | " +
+// " "+matchingCredits+" | " +
+// "
" +
+ "" +
+ " "+SpeciesGridFields.PRODUCT_OCCURRENCES.getName()+" | " +
+ " "+occurencesCount+" | " +
+ "
" +
+
+ "" +
+ " "+SpeciesGridFields.LSID.getName()+" | " +
+ " "+lsid+" | " +
+ "
" +
+ "" +
+ " "+SpeciesGridFields.AUTHOR.getName()+" | " +
+ " "+author+" | " +
+ "
" +
+ "" +
+ " "+SpeciesGridFields.CREDITS.getName()+" | " +
+ " "+credits+" | " +
+ "
" +
+
+ "" +
+ " "+SpeciesGridFields.PROPERTIES.getName()+" | " +
+ " "+propertiesHtml+" | " +
+ "
" +
+
+ "
";
+ return new Html(table);
+
+ }
+}
diff --git a/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/cluster/TablesForTaxonomyRow.java b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/cluster/TablesForTaxonomyRow.java
new file mode 100644
index 0000000..2eec5ab
--- /dev/null
+++ b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/cluster/TablesForTaxonomyRow.java
@@ -0,0 +1,178 @@
+package org.gcube.portlets.user.speciesdiscovery.client.cluster;
+
+import java.util.List;
+
+import org.gcube.portlets.user.speciesdiscovery.client.ConstantsSpeciesDiscovery;
+import org.gcube.portlets.user.speciesdiscovery.client.event.CreateTaxonomyJobEvent;
+import org.gcube.portlets.user.speciesdiscovery.client.event.CreateTaxonomyJobEvent.TaxonomyJobType;
+import org.gcube.portlets.user.speciesdiscovery.client.resources.Resources;
+import org.gcube.portlets.user.speciesdiscovery.shared.TaxonomyRow;
+
+import com.extjs.gxt.ui.client.Style.ButtonScale;
+import com.extjs.gxt.ui.client.Style.IconAlign;
+import com.extjs.gxt.ui.client.Style.Scroll;
+import com.extjs.gxt.ui.client.event.MenuEvent;
+import com.extjs.gxt.ui.client.event.SelectionListener;
+import com.extjs.gxt.ui.client.widget.ContentPanel;
+import com.extjs.gxt.ui.client.widget.Html;
+import com.extjs.gxt.ui.client.widget.TabItem;
+import com.extjs.gxt.ui.client.widget.TabPanel;
+import com.extjs.gxt.ui.client.widget.VerticalPanel;
+import com.extjs.gxt.ui.client.widget.button.Button;
+import com.extjs.gxt.ui.client.widget.menu.Menu;
+import com.extjs.gxt.ui.client.widget.menu.MenuItem;
+import com.extjs.gxt.ui.client.widget.tips.ToolTipConfig;
+import com.extjs.gxt.ui.client.widget.toolbar.ToolBar;
+import com.google.gwt.event.shared.EventBus;
+import com.google.gwt.user.client.ui.AbstractImagePrototype;
+import com.google.gwt.user.client.ui.FlexTable;
+
+/**
+ *
+ * @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
+ *
+ */
+public class TablesForTaxonomyRow {
+
+ private TabPanel tabPanel;
+ private EventBus eventBus;
+
+ private List parents = null;
+ private TabItemForTaxonomyRow tabTR;
+
+// private HashMap hashTR = new HashMap();
+
+
+ public List getParents() {
+ return parents;
+ }
+
+ public void setParents(List parents) {
+ this.parents = parents;
+ }
+
+
+ public TablesForTaxonomyRow(TabPanel tabPanel2, EventBus eventBus2) {
+ this.tabPanel = tabPanel2;
+ this.eventBus = eventBus2;
+
+ this.tabTR = new TabItemForTaxonomyRow(this, this.tabPanel, this.eventBus);
+ }
+
+
+ /**
+ *
+ * @param taxonomy
+ * @param isNewTab - set true if has been clicked a classification link, or false otherwise
+ * @return
+ */
+
+ public VerticalPanel getPanelClassificationForTaxonomy(TaxonomyRow taxonomy, String dataSource, boolean isNewTab){
+
+// hashTR.put(taxonomy.getIdToString(),tabTR);
+
+ tabTR.setCurrentTaxonomy(taxonomy);
+
+ //DEBUG
+ System.out.println("in getPanelClassificationForTaxonomy...");
+ System.out.println("principal "+taxonomy.getName() + " id " + taxonomy.getServiceId()+" parents");
+ int i=0;
+ for (TaxonomyRow tax : taxonomy.getParents()) {
+ System.out.println(++i + " parent name " + tax.getName());
+ }
+
+ return tabTR.getPanelClassificationForTaxonomy(taxonomy, dataSource, isNewTab);
+ }
+
+
+ /**
+ *
+ * @param row
+ * @param isNewTab
+ * @param dataSource
+ * @param parentIndex
+ * @return
+ */
+ public FlexTable getHTMLTableForTaxonomyWithRef(final TaxonomyRow row,boolean isNewTab, final String dataSource) {
+
+ return tabTR.getHTMLTableForTaxonomyWithRef(row, isNewTab, dataSource);
+ }
+
+
+ protected ContentPanel getPanelForTaxonomy(TaxonomyRow taxon, String dataSource, boolean isNewTab) {
+
+ ContentPanel contentPanel = new ContentPanel();
+// contentPanel.setLayout(new FitLayout());
+ contentPanel.setHeaderVisible(false);
+ contentPanel.setBodyBorder(false);
+
+ contentPanel.setStyleAttribute("padding", "5px");
+ contentPanel.setStyleAttribute("margin", "5px");
+
+ VerticalPanel verticaPanel = new VerticalPanel();
+ verticaPanel.setSize("100%", "100%");
+
+ contentPanel.add(new Html("
" + taxon.getName() + "
"));
+ contentPanel.add(new Html("
Scientific Classification
"));
+
+ contentPanel.add(getPanelClassificationForTaxonomy(taxon, dataSource, isNewTab));
+
+ contentPanel.add(getHTMLTableForTaxonomyWithRef(taxon, isNewTab, dataSource));
+
+ return contentPanel;
+
+ }
+
+ protected void addTabItem(final TaxonomyRow taxon, final String dataSource){
+
+ this.tabTR = new TabItemForTaxonomyRow(this, this.tabPanel, this.eventBus);
+
+ TabItem tabItem = new TabItem();
+// tabItem.setLayout(new FitLayout());
+ tabItem.setScrollMode(Scroll.AUTO);
+ tabItem.setClosable(true);
+
+
+ ContentPanel cp = new ContentPanel();
+ cp.setHeaderVisible(false);
+ ToolBar toolbar = new ToolBar();
+
+
+ Button btnSaveTaxonomyChildren = new Button(ConstantsSpeciesDiscovery.SAVE_TAXONOMY_CHILDREN);
+ Menu formatSubMenu = new Menu();
+ btnSaveTaxonomyChildren.setMenu(formatSubMenu);
+ btnSaveTaxonomyChildren.setScale(ButtonScale.SMALL);
+ btnSaveTaxonomyChildren.setIconAlign(IconAlign.TOP);
+ btnSaveTaxonomyChildren.setIcon(AbstractImagePrototype.create(Resources.INSTANCE.getSaveProducts()));
+ btnSaveTaxonomyChildren.setToolTip(new ToolTipConfig(ConstantsSpeciesDiscovery.SAVE_TAXONOMY_CHILDREN, ConstantsSpeciesDiscovery.SAVES_TAXONOMY_CHILDREN_FROM_RESULT));
+
+ MenuItem darwinCoreArchiveItem = new MenuItem(ConstantsSpeciesDiscovery.DARWIN_CORE_ARCHIVE);
+ darwinCoreArchiveItem.setToolTip(new ToolTipConfig(ConstantsSpeciesDiscovery.SAVES_IN_DARWIN_CORE_ARCHIVE_FORMAT));
+ darwinCoreArchiveItem.addSelectionListener(new SelectionListener() {
+
+ @Override
+ public void componentSelected(MenuEvent ce) {
+ eventBus.fireEvent(new CreateTaxonomyJobEvent(taxon, dataSource, TaxonomyJobType.BYCHILDREN));
+ }
+ });
+
+ formatSubMenu.add(darwinCoreArchiveItem);
+ toolbar.add(btnSaveTaxonomyChildren);
+
+ cp.setTopComponent(toolbar);
+ cp.setBodyBorder(false);
+// cp.setScrollMode(Scroll.AUTOY);
+
+ String tabName = taxon.getName() + " ("+ dataSource + ")";
+ tabItem.setText(tabName);
+
+ cp.add(getPanelForTaxonomy(taxon, dataSource, true));
+
+ tabItem.add(cp);
+
+ tabPanel.add(tabItem);
+
+ }
+
+
+}
diff --git a/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/detail/SpeciesDetail.java b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/detail/SpeciesDetail.java
new file mode 100644
index 0000000..f764eb1
--- /dev/null
+++ b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/detail/SpeciesDetail.java
@@ -0,0 +1,36 @@
+package org.gcube.portlets.user.speciesdiscovery.client.detail;
+
+import org.gcube.portlets.user.speciesdiscovery.client.util.SpeciesDetailsFields;
+
+import com.extjs.gxt.ui.client.data.BaseModel;
+import com.google.gwt.user.client.rpc.IsSerializable;
+
+public class SpeciesDetail extends BaseModel implements IsSerializable {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 7073479182629932572L;
+
+
+ public SpeciesDetail() {
+ }
+
+ public SpeciesDetail(String name, String value, String group) {
+ set(SpeciesDetailsFields.NAME.getId(), name);
+ set(SpeciesDetailsFields.GROUP.getId(), group);
+ set(SpeciesDetailsFields.VALUE.getId(), value);
+ }
+
+ public String getGroup(){
+ return get(SpeciesDetailsFields.GROUP.getId());
+ }
+
+ public String getName(){
+ return get(SpeciesDetailsFields.NAME.getId());
+ }
+
+ public String getValue(){
+ return get(SpeciesDetailsFields.VALUE.getId());
+ }
+}
diff --git a/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/detail/SpeciesDetailsPanel.java b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/detail/SpeciesDetailsPanel.java
new file mode 100644
index 0000000..ec1be11
--- /dev/null
+++ b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/detail/SpeciesDetailsPanel.java
@@ -0,0 +1,122 @@
+package org.gcube.portlets.user.speciesdiscovery.client.detail;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.gcube.portlets.user.speciesdiscovery.client.resources.Resources;
+import org.gcube.portlets.user.speciesdiscovery.client.util.SpeciesDetailsFields;
+import org.gcube.portlets.user.speciesdiscovery.client.util.SpeciesGridFields;
+import org.gcube.portlets.user.speciesdiscovery.client.util.Util;
+import org.gcube.portlets.user.speciesdiscovery.shared.CommonName;
+import org.gcube.portlets.user.speciesdiscovery.shared.ResultRow;
+
+import com.extjs.gxt.ui.client.Style.Scroll;
+import com.extjs.gxt.ui.client.data.ModelData;
+import com.extjs.gxt.ui.client.store.GroupingStore;
+import com.extjs.gxt.ui.client.widget.ContentPanel;
+import com.extjs.gxt.ui.client.widget.grid.ColumnConfig;
+import com.extjs.gxt.ui.client.widget.grid.ColumnModel;
+import com.extjs.gxt.ui.client.widget.grid.Grid;
+import com.extjs.gxt.ui.client.widget.grid.GridGroupRenderer;
+import com.extjs.gxt.ui.client.widget.grid.GroupColumnData;
+import com.extjs.gxt.ui.client.widget.grid.GroupingView;
+import com.extjs.gxt.ui.client.widget.layout.FlowLayout;
+import com.google.gwt.user.client.ui.Image;
+
+public class SpeciesDetailsPanel extends ContentPanel {
+
+ private Image image = new Image(Resources.INSTANCE.getNoPictureAvailable());
+
+ private Grid grid;
+
+ private GroupingStore store = new GroupingStore();
+
+ public SpeciesDetailsPanel() {
+
+ setLayout(new FlowLayout());
+ setHeading("Species Details");
+ setScrollMode(Scroll.AUTO);
+
+ image.setTitle("Species picture");
+ image.setAltText("");
+ image.setSize(String.valueOf(Resources.INSTANCE.getNoPictureAvailable().getWidth()), String.valueOf(Resources.INSTANCE.getNoPictureAvailable().getHeight()));
+
+
+ add(image);
+
+ store.groupBy(SpeciesDetailsFields.GROUP.getId());
+ List columns = new ArrayList();
+
+ ColumnConfig name = Util.createColumnConfig(SpeciesDetailsFields.NAME, 100);
+ columns.add(name);
+ ColumnConfig value = Util.createColumnConfig(SpeciesDetailsFields.VALUE, 100);
+ columns.add(value);
+ ColumnModel cm = new ColumnModel(columns);
+
+ GroupingView view = new GroupingView();
+ view.setShowGroupedColumn(false);
+ view.setForceFit(true);
+ view.setSortingEnabled(false);
+ view.setStartCollapsed(true);
+
+ view.setGroupRenderer(new GridGroupRenderer() {
+ public String render(GroupColumnData data) {
+ String l = data.models.size() == 1 ? "Item" : "Items";
+ return data.group + " (" + data.models.size() + " " + l + ")";
+ }
+ });
+
+
+ grid = new Grid(store, cm);
+ grid.setView(view);
+ grid.setBorders(true);
+ grid.setHeight(318);
+
+
+ add(grid);
+ }
+
+ public void setSpeciesData(ModelData data){
+// System.out.println("Setting details");
+ mask("Loading details..");
+
+ String scientificName = data.get(SpeciesGridFields.MATCHING_NAME.getId());
+ setHeading(scientificName+" details.");
+
+
+ String imageUrl = data.get(SpeciesGridFields.IMAGE.getId());
+ image.setUrl(imageUrl!=null?imageUrl:Resources.INSTANCE.getNoPictureAvailable().getSafeUri().asString());
+ image.setAltText("Image for "+scientificName);
+ image.setTitle(scientificName);
+ image.setPixelSize(Resources.INSTANCE.getNoPictureAvailable().getWidth(), Resources.INSTANCE.getNoPictureAvailable().getHeight());
+
+ ArrayList details = new ArrayList();
+
+ ResultRow row = (ResultRow) data.get(SpeciesGridFields.ROW.getId());
+
+
+ for (CommonName commonName:row.getCommonNames()) {
+ details.add(new SpeciesDetail(commonName.getLanguage(), commonName.getName(), SpeciesGridFields.COMMON_NAMES.getName()));
+ }
+
+
+ details.add(new SpeciesDetail(SpeciesGridFields.DATASOURCE.getName(), row.getDataSourceName(), SpeciesGridFields.PROVENANCE.getName()));
+ details.add(new SpeciesDetail(SpeciesGridFields.DATAPROVIDER.getName(), row.getDataProviderName(), SpeciesGridFields.PROVENANCE.getName()));
+ details.add(new SpeciesDetail(SpeciesGridFields.DATASET.getName(), row.getDataSetName(), SpeciesGridFields.PROVENANCE.getName()));
+ details.add(new SpeciesDetail(SpeciesGridFields.DATASET_CITATION.getName(), row.getDataSetCitation(), SpeciesGridFields.PROVENANCE.getName()));
+
+// details.add(new SpeciesDetail(SpeciesGridFields.PRODUCT_IMAGES.getName(), String.valueOf(row.getImagesCount()), SpeciesGridFields.PRODUCTS.getName()));
+// details.add(new SpeciesDetail(SpeciesGridFields.PRODUCT_MAPS.getName(), String.valueOf(row.getMapsCount()), SpeciesGridFields.PRODUCTS.getName()));
+// details.add(new SpeciesDetail(SpeciesGridFields.PRODUCT_LAYERS.getName(), String.valueOf(row.getLayersCount()), SpeciesGridFields.PRODUCTS.getName()));
+ details.add(new SpeciesDetail(SpeciesGridFields.PRODUCT_OCCURRENCES.getName(), String.valueOf(row.getOccurencesCount()), SpeciesGridFields.PRODUCTS.getName()));
+
+ store.removeAll();
+ store.add(details);
+// System.out.println("Details added "+details.size());
+ //grid.getView().refresh(false);
+ unmask();
+ //Log.debug("store contains : "+store.getModels().size());
+ }
+
+
+}
diff --git a/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/ActiveButtonCheckAllRowEvent.java b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/ActiveButtonCheckAllRowEvent.java
new file mode 100644
index 0000000..cf0317d
--- /dev/null
+++ b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/ActiveButtonCheckAllRowEvent.java
@@ -0,0 +1,35 @@
+/**
+ *
+ */
+package org.gcube.portlets.user.speciesdiscovery.client.event;
+
+import com.google.gwt.event.shared.GwtEvent;
+
+
+/**
+ * @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
+ *
+ */
+public class ActiveButtonCheckAllRowEvent extends GwtEvent {
+
+ public static final GwtEvent.Type TYPE = new Type();
+ private boolean activeFilter;
+
+ @Override
+ public Type getAssociatedType() {
+ return TYPE;
+ }
+
+ @Override
+ protected void dispatch(ActiveButtonCheckAllRowEventHandler handler) {
+ handler.onActiveCkeckAllRow(this);
+ }
+
+ public ActiveButtonCheckAllRowEvent(boolean activeFilter) {
+ this.activeFilter = activeFilter;
+ }
+
+ public boolean isActiveFilter() {
+ return activeFilter;
+ }
+}
diff --git a/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/ActiveButtonCheckAllRowEventHandler.java b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/ActiveButtonCheckAllRowEventHandler.java
new file mode 100644
index 0000000..5e795e0
--- /dev/null
+++ b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/ActiveButtonCheckAllRowEventHandler.java
@@ -0,0 +1,16 @@
+/**
+ *
+ */
+package org.gcube.portlets.user.speciesdiscovery.client.event;
+
+import com.google.gwt.event.shared.EventHandler;
+
+/**
+ *
+ * @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
+ *
+ */
+public interface ActiveButtonCheckAllRowEventHandler extends EventHandler {
+ public void onActiveCkeckAllRow(ActiveButtonCheckAllRowEvent activeFilterCheckAllRowEvent);
+
+}
diff --git a/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/ActiveFilterOnResultEvent.java b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/ActiveFilterOnResultEvent.java
new file mode 100644
index 0000000..7bb801f
--- /dev/null
+++ b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/ActiveFilterOnResultEvent.java
@@ -0,0 +1,37 @@
+/**
+ *
+ */
+package org.gcube.portlets.user.speciesdiscovery.client.event;
+
+import org.gcube.portlets.user.speciesdiscovery.shared.filter.ResultFilter;
+
+import com.google.gwt.event.shared.GwtEvent;
+
+
+/**
+ * @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
+ *
+ */
+public class ActiveFilterOnResultEvent extends GwtEvent {
+
+ public static final GwtEvent.Type TYPE = new Type();
+ private ResultFilter activeFilterObject;
+
+ @Override
+ public Type getAssociatedType() {
+ return TYPE;
+ }
+
+ @Override
+ protected void dispatch(ActiveFilterOnResultEventHandler handler) {
+ handler.onActiveFilter(this);
+ }
+
+ public ActiveFilterOnResultEvent(ResultFilter activeFilter) {
+ this.activeFilterObject = activeFilter;
+ }
+
+ public ResultFilter getActiveFilterObject() {
+ return activeFilterObject;
+ }
+}
diff --git a/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/ActiveFilterOnResultEventHandler.java b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/ActiveFilterOnResultEventHandler.java
new file mode 100644
index 0000000..f364a4b
--- /dev/null
+++ b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/ActiveFilterOnResultEventHandler.java
@@ -0,0 +1,15 @@
+/**
+ *
+ */
+package org.gcube.portlets.user.speciesdiscovery.client.event;
+
+import com.google.gwt.event.shared.EventHandler;
+
+/**
+ * @author "Federico De Faveri defaveri@isti.cnr.it"
+ *
+ */
+public interface ActiveFilterOnResultEventHandler extends EventHandler {
+ public void onActiveFilter(ActiveFilterOnResultEvent activeFilterOnResultEvent);
+
+}
diff --git a/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/ActiveMaskLoadingGrid.java b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/ActiveMaskLoadingGrid.java
new file mode 100644
index 0000000..f5ed67e
--- /dev/null
+++ b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/ActiveMaskLoadingGrid.java
@@ -0,0 +1,38 @@
+/**
+ *
+ */
+package org.gcube.portlets.user.speciesdiscovery.client.event;
+
+import com.google.gwt.event.shared.GwtEvent;
+
+
+
+/**
+ * @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
+ *
+ */
+public class ActiveMaskLoadingGrid extends GwtEvent {
+
+ public static final GwtEvent.Type TYPE = new Type();
+ private boolean active;
+
+ @Override
+ public Type getAssociatedType() {
+ return TYPE;
+ }
+
+ @Override
+ protected void dispatch(ActiveMaskLoadingGridHandler handler) {
+ handler.onActiveMaskLoadingGrid(this);
+ }
+
+ public ActiveMaskLoadingGrid(boolean active) {
+ this.active = active;
+ }
+
+ public boolean isActive() {
+ return active;
+ }
+}
+
+
diff --git a/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/ActiveMaskLoadingGridHandler.java b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/ActiveMaskLoadingGridHandler.java
new file mode 100644
index 0000000..11e182a
--- /dev/null
+++ b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/ActiveMaskLoadingGridHandler.java
@@ -0,0 +1,17 @@
+/**
+ *
+ */
+package org.gcube.portlets.user.speciesdiscovery.client.event;
+
+import com.google.gwt.event.shared.EventHandler;
+
+
+/**
+ *
+ * @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
+ *
+ */
+public interface ActiveMaskLoadingGridHandler extends EventHandler {
+ public void onActiveMaskLoadingGrid(ActiveMaskLoadingGrid activeLoadingGrid);
+
+}
diff --git a/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/CapabilitySelectedEvent.java b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/CapabilitySelectedEvent.java
new file mode 100644
index 0000000..08719f1
--- /dev/null
+++ b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/CapabilitySelectedEvent.java
@@ -0,0 +1,42 @@
+/**
+ *
+ */
+package org.gcube.portlets.user.speciesdiscovery.client.event;
+
+import org.gcube.portlets.user.speciesdiscovery.shared.SpeciesCapability;
+
+import com.google.gwt.event.shared.GwtEvent;
+
+
+/**
+ * @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
+ *
+ */
+public class CapabilitySelectedEvent extends GwtEvent {
+
+ public static final GwtEvent.Type TYPE = new Type();
+
+ private SpeciesCapability capability;
+
+ public CapabilitySelectedEvent(SpeciesCapability capability) {
+ this.capability = capability;
+ }
+
+ @Override
+ public Type getAssociatedType() {
+ return TYPE;
+ }
+
+ @Override
+ protected void dispatch(CapabilitySelectedEventHandler handler) {
+ handler.onCapabilitySelected(this);
+ }
+
+ public SpeciesCapability getCapability() {
+ return capability;
+ }
+
+ public void setCapability(SpeciesCapability capability) {
+ this.capability = capability;
+ }
+}
diff --git a/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/CapabilitySelectedEventHandler.java b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/CapabilitySelectedEventHandler.java
new file mode 100644
index 0000000..6206bc8
--- /dev/null
+++ b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/CapabilitySelectedEventHandler.java
@@ -0,0 +1,15 @@
+/**
+ *
+ */
+package org.gcube.portlets.user.speciesdiscovery.client.event;
+
+import com.google.gwt.event.shared.EventHandler;
+
+/**
+ * @author "Federico De Faveri defaveri@isti.cnr.it"
+ *
+ */
+public interface CapabilitySelectedEventHandler extends EventHandler {
+ public void onCapabilitySelected(CapabilitySelectedEvent capabilitySelectedEvent);
+
+}
diff --git a/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/ChangeFilterClassificationOnResultEvent.java b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/ChangeFilterClassificationOnResultEvent.java
new file mode 100644
index 0000000..0bfde18
--- /dev/null
+++ b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/ChangeFilterClassificationOnResultEvent.java
@@ -0,0 +1,26 @@
+/**
+ *
+ */
+package org.gcube.portlets.user.speciesdiscovery.client.event;
+
+import com.google.gwt.event.shared.GwtEvent;
+
+
+/**
+ * @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
+ *
+ */
+public class ChangeFilterClassificationOnResultEvent extends GwtEvent {
+
+ public static final GwtEvent.Type TYPE = new Type();
+
+ @Override
+ public Type getAssociatedType() {
+ return TYPE;
+ }
+
+ @Override
+ protected void dispatch(ChangeFilterClassificationOnResultEventHandler handler) {
+ handler.onChangeFilter(this);
+ }
+}
diff --git a/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/ChangeFilterClassificationOnResultEventHandler.java b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/ChangeFilterClassificationOnResultEventHandler.java
new file mode 100644
index 0000000..da5ff2e
--- /dev/null
+++ b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/ChangeFilterClassificationOnResultEventHandler.java
@@ -0,0 +1,15 @@
+/**
+ *
+ */
+package org.gcube.portlets.user.speciesdiscovery.client.event;
+
+import com.google.gwt.event.shared.EventHandler;
+
+/**
+ * @author "Federico De Faveri defaveri@isti.cnr.it"
+ *
+ */
+public interface ChangeFilterClassificationOnResultEventHandler extends EventHandler {
+ public void onChangeFilter(ChangeFilterClassificationOnResultEvent changeFilterClassificationOnResultEvent);
+
+}
diff --git a/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/CompletedLoadDataSourceEvent.java b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/CompletedLoadDataSourceEvent.java
new file mode 100644
index 0000000..3b6dcf1
--- /dev/null
+++ b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/CompletedLoadDataSourceEvent.java
@@ -0,0 +1,29 @@
+/**
+ *
+ */
+package org.gcube.portlets.user.speciesdiscovery.client.event;
+
+import com.google.gwt.event.shared.GwtEvent;
+
+
+/**
+ * @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
+ *
+ */
+public class CompletedLoadDataSourceEvent extends GwtEvent {
+
+ public static final GwtEvent.Type TYPE = new Type();
+
+ @Override
+ public Type getAssociatedType() {
+ return TYPE;
+ }
+
+ @Override
+ protected void dispatch(CompletedLoadDataSourceEventHandler handler) {
+ handler.onCompletedLoadDataSource(this);
+ }
+
+ public CompletedLoadDataSourceEvent() {
+ }
+}
diff --git a/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/CompletedLoadDataSourceEventHandler.java b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/CompletedLoadDataSourceEventHandler.java
new file mode 100644
index 0000000..38e18fa
--- /dev/null
+++ b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/CompletedLoadDataSourceEventHandler.java
@@ -0,0 +1,17 @@
+/**
+ *
+ */
+package org.gcube.portlets.user.speciesdiscovery.client.event;
+
+import com.google.gwt.event.shared.EventHandler;
+
+/**
+ * @author francesco-mangiacrapa
+ *
+ */
+public interface CompletedLoadDataSourceEventHandler extends EventHandler {
+
+ public void onCompletedLoadDataSource(
+ CompletedLoadDataSourceEvent completedLoadDataSourceEvent);
+
+}
diff --git a/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/CreateOccurrenceJobEvent.java b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/CreateOccurrenceJobEvent.java
new file mode 100644
index 0000000..2b6ea43
--- /dev/null
+++ b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/CreateOccurrenceJobEvent.java
@@ -0,0 +1,104 @@
+/**
+ *
+ */
+package org.gcube.portlets.user.speciesdiscovery.client.event;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.gcube.portlets.user.speciesdiscovery.shared.OccurrencesSaveEnum;
+import org.gcube.portlets.user.speciesdiscovery.shared.SaveFileFormat;
+
+import com.google.gwt.event.shared.GwtEvent;
+
+/**
+ *
+ * @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
+ *
+ */
+public class CreateOccurrenceJobEvent extends GwtEvent {
+
+ public static final GwtEvent.Type TYPE = new Type();
+ private SaveFileFormat fileFormat;
+ private int expectedOccurrences;
+ private OccurrencesSaveEnum saveEnum;
+ private List listDataSourceFound;
+ private String searchTerm;
+ private boolean isByDataSource;
+
+ @Override
+ public Type getAssociatedType() {
+ return TYPE;
+ }
+
+ @Override
+ protected void dispatch(CreateOccurrenceJobEventHandler handler) {
+ handler.onCreateSpeciesJob(this);
+ }
+
+ /**
+ *
+ * @param fileFormat
+ * @param expectedOccurrences
+ * @param save
+ * @param listDataSourceFound
+ * @param searchTerm
+ * @param isByDataSource
+ */
+ public CreateOccurrenceJobEvent(SaveFileFormat fileFormat, int expectedOccurrences, OccurrencesSaveEnum save, List listDataSourceFound, String searchTerm, boolean isByDataSource) {
+ this.fileFormat = fileFormat;
+ this.expectedOccurrences = expectedOccurrences;
+ this.saveEnum = save;
+ this.listDataSourceFound = listDataSourceFound;
+ this.searchTerm = searchTerm;
+ this.isByDataSource = isByDataSource;
+ }
+
+ public OccurrencesSaveEnum getSaveEnum() {
+ return saveEnum;
+ }
+
+ public void setSaveEnum(OccurrencesSaveEnum saveEnum) {
+ this.saveEnum = saveEnum;
+ }
+
+ public List getListDataSourceFound() {
+ return listDataSourceFound;
+ }
+
+ public void setListDataSourceFound(ArrayList listDataSourceFound) {
+ this.listDataSourceFound = listDataSourceFound;
+ }
+
+ public SaveFileFormat getFileFormat() {
+ return fileFormat;
+ }
+
+ public void setFileFormat(SaveFileFormat fileFormat) {
+ this.fileFormat = fileFormat;
+ }
+
+ public int getExpectedOccurrences() {
+ return expectedOccurrences;
+ }
+
+ public void setExpectedOccurrences(int expectedOccurrences) {
+ this.expectedOccurrences = expectedOccurrences;
+ }
+
+ public String getSearchTerm() {
+ return searchTerm;
+ }
+
+ public void setSearchTerm(String searchTerm) {
+ this.searchTerm = searchTerm;
+ }
+
+ public boolean isByDataSource() {
+ return isByDataSource;
+ }
+
+ public void setByDataSource(boolean isByDataSource) {
+ this.isByDataSource = isByDataSource;
+ }
+}
diff --git a/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/CreateOccurrenceJobEventHandler.java b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/CreateOccurrenceJobEventHandler.java
new file mode 100644
index 0000000..0e9ae71
--- /dev/null
+++ b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/CreateOccurrenceJobEventHandler.java
@@ -0,0 +1,17 @@
+/**
+ *
+ */
+package org.gcube.portlets.user.speciesdiscovery.client.event;
+
+import com.google.gwt.event.shared.EventHandler;
+
+/**
+ *
+ * @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
+ *
+ */
+public interface CreateOccurrenceJobEventHandler extends EventHandler {
+
+ public void onCreateSpeciesJob(CreateOccurrenceJobEvent createOccurrenceJobEvent);
+
+}
diff --git a/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/CreateTaxonomyJobEvent.java b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/CreateTaxonomyJobEvent.java
new file mode 100644
index 0000000..ee808da
--- /dev/null
+++ b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/CreateTaxonomyJobEvent.java
@@ -0,0 +1,73 @@
+/**
+ *
+ */
+package org.gcube.portlets.user.speciesdiscovery.client.event;
+
+import org.gcube.portlets.user.speciesdiscovery.shared.TaxonomyRow;
+
+import com.google.gwt.event.shared.GwtEvent;
+
+/**
+ *
+ * @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
+ *
+ */
+public class CreateTaxonomyJobEvent extends GwtEvent {
+
+ public static final GwtEvent.Type TYPE = new Type();
+ private TaxonomyRow taxonomy;
+ private String dataSourceName;
+ public enum TaxonomyJobType {BYCHILDREN, BYIDS};
+ private TaxonomyJobType jobType;
+
+ @Override
+ public Type getAssociatedType() {
+ return TYPE;
+ }
+
+ @Override
+ protected void dispatch(CreateTaxonomyJobEventHandler handler) {
+ handler.onCreateSpeciesJob(this);
+ }
+
+ /**
+ *
+ * @param taxonomy
+ * @param dataSourceName
+ * @param type
+ * @param rank
+ */
+ public CreateTaxonomyJobEvent(TaxonomyRow taxonomy, String dataSourceName, TaxonomyJobType jobType) {
+ this.taxonomy = taxonomy;
+ this.dataSourceName = dataSourceName;
+ this.jobType = jobType;
+ }
+
+ /**
+ *
+ * @param jobType
+ */
+ public CreateTaxonomyJobEvent(TaxonomyJobType jobType){
+ this.jobType = jobType;
+ }
+
+ public TaxonomyJobType getJobType() {
+ return jobType;
+ }
+
+ public TaxonomyRow getTaxonomy() {
+ return taxonomy;
+ }
+
+ public void setTaxonomy(TaxonomyRow taxonomy) {
+ this.taxonomy = taxonomy;
+ }
+
+ public String getDataSourceName() {
+ return dataSourceName;
+ }
+
+ public void setDataSourceName(String dataSourceName) {
+ this.dataSourceName = dataSourceName;
+ }
+}
diff --git a/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/CreateTaxonomyJobEventHandler.java b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/CreateTaxonomyJobEventHandler.java
new file mode 100644
index 0000000..770e57e
--- /dev/null
+++ b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/CreateTaxonomyJobEventHandler.java
@@ -0,0 +1,17 @@
+/**
+ *
+ */
+package org.gcube.portlets.user.speciesdiscovery.client.event;
+
+import com.google.gwt.event.shared.EventHandler;
+
+/**
+ *
+ * @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
+ *
+ */
+public interface CreateTaxonomyJobEventHandler extends EventHandler {
+
+ public void onCreateSpeciesJob(CreateTaxonomyJobEvent createSpeciesJobEvent);
+
+}
diff --git a/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/DisableFilterEvent.java b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/DisableFilterEvent.java
new file mode 100644
index 0000000..8d9ee60
--- /dev/null
+++ b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/DisableFilterEvent.java
@@ -0,0 +1,28 @@
+/**
+ *
+ */
+package org.gcube.portlets.user.speciesdiscovery.client.event;
+
+import com.google.gwt.event.shared.GwtEvent;
+
+
+/**
+ * @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
+ *
+ */
+public class DisableFilterEvent extends GwtEvent {
+
+ public static final GwtEvent.Type TYPE = new Type();
+
+ @Override
+ public Type getAssociatedType() {
+ return TYPE;
+ }
+
+ @Override
+ protected void dispatch(DisableFilterEventHandler handler) {
+ handler.onDisableFilter(this);
+ }
+
+
+}
diff --git a/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/DisableFilterEventHandler.java b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/DisableFilterEventHandler.java
new file mode 100644
index 0000000..d0bbafa
--- /dev/null
+++ b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/DisableFilterEventHandler.java
@@ -0,0 +1,15 @@
+/**
+ *
+ */
+package org.gcube.portlets.user.speciesdiscovery.client.event;
+
+import com.google.gwt.event.shared.EventHandler;
+
+/**
+ * @author "Federico De Faveri defaveri@isti.cnr.it"
+ *
+ */
+public interface DisableFilterEventHandler extends EventHandler {
+ public void onDisableFilter(DisableFilterEvent disableFilterEvent);
+
+}
diff --git a/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/LoadDataSourceEvent.java b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/LoadDataSourceEvent.java
new file mode 100644
index 0000000..8006949
--- /dev/null
+++ b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/LoadDataSourceEvent.java
@@ -0,0 +1,29 @@
+/**
+ *
+ */
+package org.gcube.portlets.user.speciesdiscovery.client.event;
+
+import com.google.gwt.event.shared.GwtEvent;
+
+
+/**
+ * @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
+ *
+ */
+public class LoadDataSourceEvent extends GwtEvent {
+
+ public static final GwtEvent.Type TYPE = new Type();
+
+ @Override
+ public Type getAssociatedType() {
+ return TYPE;
+ }
+
+ @Override
+ protected void dispatch(LoadDataSourceEventHandler handler) {
+ handler.onLoadDataSource(this);
+ }
+
+ public LoadDataSourceEvent() {
+ }
+}
diff --git a/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/LoadDataSourceEventHandler.java b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/LoadDataSourceEventHandler.java
new file mode 100644
index 0000000..e78f16c
--- /dev/null
+++ b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/LoadDataSourceEventHandler.java
@@ -0,0 +1,15 @@
+/**
+ *
+ */
+package org.gcube.portlets.user.speciesdiscovery.client.event;
+
+import com.google.gwt.event.shared.EventHandler;
+
+/**
+ * @author "Federico De Faveri defaveri@isti.cnr.it"
+ *
+ */
+public interface LoadDataSourceEventHandler extends EventHandler {
+ public void onLoadDataSource(LoadDataSourceEvent loadDataSourceEvent);
+
+}
diff --git a/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/ReLoadListJobEvent.java b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/ReLoadListJobEvent.java
new file mode 100644
index 0000000..267a800
--- /dev/null
+++ b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/ReLoadListJobEvent.java
@@ -0,0 +1,40 @@
+/**
+ *
+ */
+package org.gcube.portlets.user.speciesdiscovery.client.event;
+
+import org.gcube.portlets.user.speciesdiscovery.shared.SearchResultType;
+
+import com.google.gwt.event.shared.GwtEvent;
+
+
+/**
+ * @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
+ *
+ */
+public class ReLoadListJobEvent extends GwtEvent {
+
+ public static final GwtEvent.Type TYPE = new Type();
+
+ private SearchResultType loadType;
+
+ @Override
+ public Type getAssociatedType() {
+ return TYPE;
+ }
+
+ public ReLoadListJobEvent(SearchResultType loadType){
+ this.loadType = loadType;
+ }
+
+ public SearchResultType getLoadType() {
+ return loadType;
+ }
+
+ @Override
+ protected void dispatch(ReLoadListJobEventHandler handler) {
+ handler.onLoadJobList(this);
+
+ }
+
+}
diff --git a/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/ReLoadListJobEventHandler.java b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/ReLoadListJobEventHandler.java
new file mode 100644
index 0000000..a8a2bdb
--- /dev/null
+++ b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/ReLoadListJobEventHandler.java
@@ -0,0 +1,16 @@
+/**
+ *
+ */
+package org.gcube.portlets.user.speciesdiscovery.client.event;
+
+import com.google.gwt.event.shared.EventHandler;
+
+/**
+ *
+ * @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
+ *
+ */
+public interface ReLoadListJobEventHandler extends EventHandler {
+ public void onLoadJobList(ReLoadListJobEvent loadJobListEvent);
+
+}
diff --git a/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/ReSubmitJobEvent.java b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/ReSubmitJobEvent.java
new file mode 100644
index 0000000..a40cf65
--- /dev/null
+++ b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/ReSubmitJobEvent.java
@@ -0,0 +1,56 @@
+/**
+ *
+ */
+package org.gcube.portlets.user.speciesdiscovery.client.event;
+
+import org.gcube.portlets.user.speciesdiscovery.shared.JobOccurrencesModel;
+import org.gcube.portlets.user.speciesdiscovery.shared.JobTaxonomyModel;
+import org.gcube.portlets.user.speciesdiscovery.shared.SearchResultType;
+
+import com.google.gwt.event.shared.GwtEvent;
+
+
+/**
+ * @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
+ *
+ */
+public class ReSubmitJobEvent extends GwtEvent {
+
+ public static final GwtEvent.Type TYPE = new Type();
+
+ private SearchResultType loadType;
+
+ private JobOccurrencesModel jobOccurrenceModel;
+
+ private JobTaxonomyModel jobTaxonomyModel;
+
+ @Override
+ public Type getAssociatedType() {
+ return TYPE;
+ }
+
+ public ReSubmitJobEvent(SearchResultType loadType, JobOccurrencesModel jobOccurrenceModel, JobTaxonomyModel jobTaxonomyModel){
+ this.loadType = loadType;
+ this.jobOccurrenceModel = jobOccurrenceModel;
+ this.jobTaxonomyModel = jobTaxonomyModel;
+ }
+
+ public SearchResultType getLoadType() {
+ return loadType;
+ }
+
+ @Override
+ protected void dispatch(ReSubmitJobEventHandler handler) {
+ handler.onResubmitJob(this);
+
+ }
+
+ public JobOccurrencesModel getJobOccurrenceModel() {
+ return jobOccurrenceModel;
+ }
+
+ public JobTaxonomyModel getJobTaxonomyModel() {
+ return jobTaxonomyModel;
+ }
+
+}
diff --git a/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/ReSubmitJobEventHandler.java b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/ReSubmitJobEventHandler.java
new file mode 100644
index 0000000..0c70a20
--- /dev/null
+++ b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/ReSubmitJobEventHandler.java
@@ -0,0 +1,15 @@
+/**
+ *
+ */
+package org.gcube.portlets.user.speciesdiscovery.client.event;
+
+import com.google.gwt.event.shared.EventHandler;
+
+/**
+ *
+ * @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
+ *
+ */
+public interface ReSubmitJobEventHandler extends EventHandler {
+ public void onResubmitJob(ReSubmitJobEvent reSubmitJobEvent);
+}
diff --git a/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/SaveItemsEvent.java b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/SaveItemsEvent.java
new file mode 100644
index 0000000..dbe8841
--- /dev/null
+++ b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/SaveItemsEvent.java
@@ -0,0 +1,91 @@
+/**
+ *
+ */
+package org.gcube.portlets.user.speciesdiscovery.client.event;
+
+import org.gcube.portlets.user.speciesdiscovery.shared.OccurrencesSaveEnum;
+import org.gcube.portlets.user.speciesdiscovery.shared.SaveFileFormat;
+import org.gcube.portlets.user.speciesdiscovery.shared.SearchResultType;
+
+import com.google.gwt.event.shared.GwtEvent;
+
+/**
+ *
+ * @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
+ *
+ */
+public class SaveItemsEvent extends GwtEvent {
+
+ public static final GwtEvent.Type TYPE = new Type();
+
+ @Override
+ public Type getAssociatedType() {
+ return TYPE;
+ }
+
+ @Override
+ protected void dispatch(SaveItemsEventHandler handler) {
+ handler.onSaveOccurrences(this);
+ }
+
+ protected SaveFileFormat fileFormat;
+ protected SearchResultType itemType;
+ private int expectedPoints;
+ private OccurrencesSaveEnum csvType;
+
+
+ /**
+ * @param taxonomyItem
+ * @param fileFormat
+ * @param count
+ */
+ public SaveItemsEvent(SearchResultType itemType, SaveFileFormat fileFormat, int expectedPoints, OccurrencesSaveEnum csvType) {
+ this.fileFormat = fileFormat;
+ this.itemType = itemType;
+ this.expectedPoints = expectedPoints;
+ this.setCsvType(csvType);
+ }
+
+ /**
+ * @return the fileFormat
+ */
+ public SaveFileFormat getFileFormat() {
+ return fileFormat;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public String toString() {
+ StringBuilder builder = new StringBuilder();
+ builder.append("SaveOccurrencesEvent [fileFormat=");
+ builder.append(fileFormat);
+ builder.append("]");
+ return builder.toString();
+ }
+
+ public SearchResultType getItemType() {
+ return itemType;
+ }
+
+ public void setItemType(SearchResultType itemType) {
+ this.itemType = itemType;
+ }
+
+ public void setFileFormat(SaveFileFormat fileFormat) {
+ this.fileFormat = fileFormat;
+ }
+
+ public int getExpectedPoints() {
+ return expectedPoints;
+ }
+
+ public void setCsvType(OccurrencesSaveEnum csvType) {
+ this.csvType = csvType;
+ }
+
+ public OccurrencesSaveEnum getCsvType() {
+ return csvType;
+ }
+}
diff --git a/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/SaveItemsEventHandler.java b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/SaveItemsEventHandler.java
new file mode 100644
index 0000000..b8a040e
--- /dev/null
+++ b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/SaveItemsEventHandler.java
@@ -0,0 +1,17 @@
+/**
+ *
+ */
+package org.gcube.portlets.user.speciesdiscovery.client.event;
+
+import com.google.gwt.event.shared.EventHandler;
+
+
+/**
+ * @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
+ *
+ */
+public interface SaveItemsEventHandler extends EventHandler {
+
+ public void onSaveOccurrences(SaveItemsEvent event);
+
+}
diff --git a/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/SaveJobEvent.java b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/SaveJobEvent.java
new file mode 100644
index 0000000..9c967ab
--- /dev/null
+++ b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/SaveJobEvent.java
@@ -0,0 +1,122 @@
+/**
+ *
+ */
+package org.gcube.portlets.user.speciesdiscovery.client.event;
+
+import java.util.List;
+
+import org.gcube.portlets.user.speciesdiscovery.shared.DataSource;
+import org.gcube.portlets.user.speciesdiscovery.shared.JobOccurrencesModel;
+import org.gcube.portlets.user.speciesdiscovery.shared.JobTaxonomyModel;
+import org.gcube.portlets.user.speciesdiscovery.shared.SearchResultType;
+
+import com.google.gwt.event.shared.GwtEvent;
+
+/**
+ *
+ * @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
+ *
+ */
+public class SaveJobEvent extends GwtEvent {
+
+ public static final GwtEvent.Type TYPE = new Type();
+ private String jobIdentifier;
+ private String scientificName;
+ private String rank;
+ private SearchResultType itemType;
+ private List listDataSources;
+ private JobTaxonomyModel jobTaxonomyModel;
+ private JobOccurrencesModel jobOccurrenceModel;
+
+ @Override
+ public Type getAssociatedType() {
+ return TYPE;
+ }
+
+ @Override
+ protected void dispatch(SaveJobEventHandler handler) {
+ handler.onSaveJob(this);
+ }
+
+
+ /**
+ *
+ * @param jobIdentifier
+ * @param scientificName
+ * @param listDataSource
+ * @param rank
+ * @param type
+ * @param jobTaxonomyModel
+ */
+ public SaveJobEvent(String jobIdentifier, String scientificName, List dataSourceList, String rank, SearchResultType type, JobTaxonomyModel jobTaxonomyModel) {
+ this.jobIdentifier = jobIdentifier;
+ this.scientificName = scientificName;
+ this.listDataSources = dataSourceList;
+ this.rank = rank;
+ this.itemType = type;
+ this.jobTaxonomyModel = jobTaxonomyModel;
+
+ }
+
+ /**
+ *
+ * @param jobIdentifier
+ * @param scientificName
+ * @param dataSourceList
+ * @param type
+ * @param jobOccurrenceModel
+ */
+ public SaveJobEvent(String jobIdentifier, String scientificName, List dataSourceList, SearchResultType type, JobOccurrencesModel jobOccurrenceModel) {
+ this.jobIdentifier = jobIdentifier;
+ this.scientificName = scientificName;
+ this.listDataSources = dataSourceList;
+ this.itemType = type;
+ this.jobOccurrenceModel = jobOccurrenceModel;
+ }
+
+
+ public String getJobIdentifier() {
+ return jobIdentifier;
+ }
+
+ public void setJobIdentifier(String jobIdentifier) {
+ this.jobIdentifier = jobIdentifier;
+ }
+
+ public String getScientificName() {
+ return scientificName;
+ }
+
+ public String getRank() {
+ return rank;
+ }
+
+ public SearchResultType getItemType() {
+ return itemType;
+ }
+
+ public JobTaxonomyModel getJobTaxonomyModel() {
+ return jobTaxonomyModel;
+ }
+
+ public JobOccurrencesModel getJobOccurrenceModel() {
+ return jobOccurrenceModel;
+ }
+
+ public void setJobTaxonomyModel(JobTaxonomyModel jobTaxonomyModel) {
+ this.jobTaxonomyModel = jobTaxonomyModel;
+ }
+
+ public void setJobOccurrenceModel(JobOccurrencesModel jobOccurrenceModel) {
+ this.jobOccurrenceModel = jobOccurrenceModel;
+ }
+
+ public List getListDataSources() {
+ return listDataSources;
+ }
+
+ public void setListDataSources(List listDataSources) {
+ this.listDataSources = listDataSources;
+ }
+
+}
diff --git a/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/SaveJobEventHandler.java b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/SaveJobEventHandler.java
new file mode 100644
index 0000000..99f46bc
--- /dev/null
+++ b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/SaveJobEventHandler.java
@@ -0,0 +1,17 @@
+/**
+ *
+ */
+package org.gcube.portlets.user.speciesdiscovery.client.event;
+
+import com.google.gwt.event.shared.EventHandler;
+
+/**
+ *
+ * @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
+ *
+ */
+public interface SaveJobEventHandler extends EventHandler {
+
+ public void onSaveJob(SaveJobEvent saveJobEvent);
+
+}
diff --git a/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/SearchCompleteEvent.java b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/SearchCompleteEvent.java
new file mode 100644
index 0000000..869317c
--- /dev/null
+++ b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/SearchCompleteEvent.java
@@ -0,0 +1,26 @@
+/**
+ *
+ */
+package org.gcube.portlets.user.speciesdiscovery.client.event;
+
+import com.google.gwt.event.shared.GwtEvent;
+
+/**
+ * @author "Federico De Faveri defaveri@isti.cnr.it"
+ *
+ */
+public class SearchCompleteEvent extends GwtEvent {
+
+ public static GwtEvent.Type TYPE = new Type();
+
+ @Override
+ public Type getAssociatedType() {
+ return TYPE;
+ }
+
+ @Override
+ protected void dispatch(SearchCompleteEventHandler handler) {
+ handler.onSearchComplete(this);
+ }
+
+}
diff --git a/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/SearchCompleteEventHandler.java b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/SearchCompleteEventHandler.java
new file mode 100644
index 0000000..52a3637
--- /dev/null
+++ b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/SearchCompleteEventHandler.java
@@ -0,0 +1,16 @@
+/**
+ *
+ */
+package org.gcube.portlets.user.speciesdiscovery.client.event;
+
+import com.google.gwt.event.shared.EventHandler;
+
+/**
+ * @author "Federico De Faveri defaveri@isti.cnr.it"
+ *
+ */
+public interface SearchCompleteEventHandler extends EventHandler {
+
+ public void onSearchComplete(SearchCompleteEvent event);
+
+}
diff --git a/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/SearchEvent.java b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/SearchEvent.java
new file mode 100644
index 0000000..34ffc6c
--- /dev/null
+++ b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/SearchEvent.java
@@ -0,0 +1,165 @@
+/**
+ *
+ */
+package org.gcube.portlets.user.speciesdiscovery.client.event;
+
+import java.util.Date;
+import java.util.List;
+
+import org.gcube.portlets.user.speciesdiscovery.shared.DataSourceModel;
+import org.gcube.portlets.user.speciesdiscovery.shared.SearchType;
+import org.gcube.portlets.user.speciesdiscovery.shared.SpeciesCapability;
+import org.gcube.portlets.user.speciesdiscovery.shared.filter.ResultFilter;
+
+import com.google.gwt.event.shared.GwtEvent;
+
+/**
+ * @author "Federico De Faveri defaveri@isti.cnr.it"
+ *
+ */
+public class SearchEvent extends GwtEvent {
+
+ public static final GwtEvent.Type TYPE = new Type();
+
+ @Override
+ public Type getAssociatedType() {
+ return TYPE;
+ }
+
+ @Override
+ protected void dispatch(SearchEventHandler handler) {
+ handler.onSearch(this);
+ }
+
+ protected String searchTerm;
+ protected SearchType type;
+ protected Number upperBoundLongitude;
+ protected Number upperBoundLatitude;
+ protected Number lowerBoundLongitude;
+ protected Number lowerBoundLatitude;
+ protected Date fromDate;
+ protected Date toDate;
+ private List lstDataSources;
+ private String groupByRank;
+ private SpeciesCapability resultType;
+ private String query;
+ private ResultFilter activeFilterOnResult;
+
+ public SearchEvent(SearchType type, String searchTerm, Number upperBoundLongitude, Number upperBoundLatitude, Number lowerBoundLongitude, Number lowerBoundLatitude,
+ Date fromDate, Date toDate, List listDataSources, String rank, SpeciesCapability resultType) {
+ this.type = type;
+ this.searchTerm = searchTerm;
+ this.upperBoundLongitude = upperBoundLongitude;
+ this.upperBoundLatitude = upperBoundLatitude;
+ this.lowerBoundLongitude = lowerBoundLongitude;
+ this.lowerBoundLatitude = lowerBoundLatitude;
+ this.fromDate = fromDate;
+ this.toDate = toDate;
+ this.lstDataSources = listDataSources;
+ this.groupByRank = rank;
+ this.resultType = resultType;
+ }
+
+ public SearchEvent(SearchType byQuery, String query) {
+ this.type = byQuery;
+ this.query = query;
+ }
+
+ /**
+ * @return the type
+ */
+ public SearchType getType() {
+ return type;
+ }
+
+ /**
+ * @return the searchTerm
+ */
+ public String getSearchTerm() {
+ return searchTerm;
+ }
+
+ /**
+ * @return the upperBoundLongitude
+ */
+ public Number getUpperBoundLongitude() {
+ return upperBoundLongitude;
+ }
+
+ /**
+ * @return the upperBoundLatitude
+ */
+ public Number getUpperBoundLatitude() {
+ return upperBoundLatitude;
+ }
+
+ /**
+ * @return the lowerBoundLongitude
+ */
+ public Number getLowerBoundLongitude() {
+ return lowerBoundLongitude;
+ }
+
+ /**
+ * @return the lowerBoundLatitude
+ */
+ public Number getLowerBoundLatitude() {
+ return lowerBoundLatitude;
+ }
+
+ /**
+ * @return the fromDate
+ */
+ public Date getFromDate() {
+ return fromDate;
+ }
+
+ /**
+ * @return the toDate
+ */
+ public Date getToDate() {
+ return toDate;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public String toString() {
+ StringBuilder builder = new StringBuilder();
+ builder.append("SearchEvent [searchTerm=");
+ builder.append(searchTerm);
+ builder.append(", type=");
+ builder.append(type);
+ builder.append(", upperBoundLongitude=");
+ builder.append(upperBoundLongitude);
+ builder.append(", upperBoundLatitude=");
+ builder.append(upperBoundLatitude);
+ builder.append(", lowerBoundLongitude=");
+ builder.append(lowerBoundLongitude);
+ builder.append(", lowerBoundLatitude=");
+ builder.append(lowerBoundLatitude);
+ builder.append(", fromDate=");
+ builder.append(fromDate);
+ builder.append(", toDate=");
+ builder.append(toDate);
+ builder.append("]");
+ return builder.toString();
+ }
+
+ public List getLstDataSources() {
+ return lstDataSources;
+ }
+
+ public String getGroupByRank() {
+ return groupByRank;
+ }
+
+ public SpeciesCapability getResultType() {
+ return resultType;
+ }
+
+ public String getQuery() {
+ return query;
+ }
+}
diff --git a/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/SearchEventHandler.java b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/SearchEventHandler.java
new file mode 100644
index 0000000..4b9fec1
--- /dev/null
+++ b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/SearchEventHandler.java
@@ -0,0 +1,16 @@
+/**
+ *
+ */
+package org.gcube.portlets.user.speciesdiscovery.client.event;
+
+import com.google.gwt.event.shared.EventHandler;
+
+/**
+ * @author "Federico De Faveri defaveri@isti.cnr.it"
+ *
+ */
+public interface SearchEventHandler extends EventHandler {
+
+ public void onSearch(SearchEvent event);
+
+}
diff --git a/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/SearchStartedEvent.java b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/SearchStartedEvent.java
new file mode 100644
index 0000000..5338a86
--- /dev/null
+++ b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/SearchStartedEvent.java
@@ -0,0 +1,26 @@
+/**
+ *
+ */
+package org.gcube.portlets.user.speciesdiscovery.client.event;
+
+import com.google.gwt.event.shared.GwtEvent;
+
+/**
+ * @author "Federico De Faveri defaveri@isti.cnr.it"
+ *
+ */
+public class SearchStartedEvent extends GwtEvent {
+
+ public static GwtEvent.Type TYPE = new Type();
+
+ @Override
+ public Type getAssociatedType() {
+ return TYPE;
+ }
+
+ @Override
+ protected void dispatch(SearchStartedEventHandler handler) {
+ handler.onSearchStarted(this);
+ }
+
+}
diff --git a/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/SearchStartedEventHandler.java b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/SearchStartedEventHandler.java
new file mode 100644
index 0000000..59087d5
--- /dev/null
+++ b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/SearchStartedEventHandler.java
@@ -0,0 +1,16 @@
+/**
+ *
+ */
+package org.gcube.portlets.user.speciesdiscovery.client.event;
+
+import com.google.gwt.event.shared.EventHandler;
+
+/**
+ * @author "Federico De Faveri defaveri@isti.cnr.it"
+ *
+ */
+public interface SearchStartedEventHandler extends EventHandler {
+
+ public void onSearchStarted(SearchStartedEvent event);
+
+}
diff --git a/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/SelectAllEvent.java b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/SelectAllEvent.java
new file mode 100644
index 0000000..9366567
--- /dev/null
+++ b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/SelectAllEvent.java
@@ -0,0 +1,53 @@
+/**
+ *
+ */
+package org.gcube.portlets.user.speciesdiscovery.client.event;
+
+import com.google.gwt.event.shared.GwtEvent;
+
+/**
+ * @author "Federico De Faveri defaveri@isti.cnr.it"
+ *
+ */
+public class SelectAllEvent extends GwtEvent {
+
+ public static final GwtEvent.Type TYPE = new Type();
+
+ @Override
+ public Type getAssociatedType() {
+ return TYPE;
+ }
+
+ @Override
+ protected void dispatch(SelectAllEventHandler handler) {
+ handler.onSelectAll(this);
+ }
+
+ protected boolean selectAll;
+
+ /**
+ * @param onlySelected
+ */
+ public SelectAllEvent(boolean onlySelected) {
+ this.selectAll = onlySelected;
+ }
+
+ /**
+ * @return the onlySelected
+ */
+ public boolean isOnlySelected() {
+ return selectAll;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public String toString() {
+ StringBuilder builder = new StringBuilder();
+ builder.append("SelectAllEvent [onlySelected=");
+ builder.append(selectAll);
+ builder.append("]");
+ return builder.toString();
+ }
+}
diff --git a/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/SelectAllEventHandler.java b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/SelectAllEventHandler.java
new file mode 100644
index 0000000..6a12958
--- /dev/null
+++ b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/SelectAllEventHandler.java
@@ -0,0 +1,16 @@
+/**
+ *
+ */
+package org.gcube.portlets.user.speciesdiscovery.client.event;
+
+import com.google.gwt.event.shared.EventHandler;
+
+/**
+ * @author "Federico De Faveri defaveri@isti.cnr.it"
+ *
+ */
+public interface SelectAllEventHandler extends EventHandler {
+
+ public void onSelectAll(SelectAllEvent event);
+
+}
diff --git a/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/SetCommonNamesEvent.java b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/SetCommonNamesEvent.java
new file mode 100644
index 0000000..cebfdb9
--- /dev/null
+++ b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/SetCommonNamesEvent.java
@@ -0,0 +1,37 @@
+/**
+ *
+ */
+package org.gcube.portlets.user.speciesdiscovery.client.event;
+
+import com.extjs.gxt.ui.client.data.BaseModelData;
+import com.google.gwt.event.shared.GwtEvent;
+
+
+/**
+ * @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
+ *
+ */
+public class SetCommonNamesEvent extends GwtEvent {
+
+ public static final GwtEvent.Type TYPE = new Type();
+ private BaseModelData baseModelData;
+
+ @Override
+ public Type getAssociatedType() {
+ return TYPE;
+ }
+
+ @Override
+ protected void dispatch(SetCommonNamesEventHandler handler) {
+ handler.onSetCommonNames(this);
+ }
+
+ public SetCommonNamesEvent(BaseModelData data) {
+ this.baseModelData = data;
+ }
+
+ public BaseModelData getBaseModelData() {
+ return baseModelData;
+ }
+
+}
diff --git a/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/SetCommonNamesEventHandler.java b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/SetCommonNamesEventHandler.java
new file mode 100644
index 0000000..d42bb53
--- /dev/null
+++ b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/SetCommonNamesEventHandler.java
@@ -0,0 +1,16 @@
+/**
+ *
+ */
+package org.gcube.portlets.user.speciesdiscovery.client.event;
+
+import com.google.gwt.event.shared.EventHandler;
+
+/**
+ *
+ * @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
+ *
+ */
+public interface SetCommonNamesEventHandler extends EventHandler {
+ public void onSetCommonNames(SetCommonNamesEvent setCommonNamesEvent);
+
+}
diff --git a/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/ShowOccurrencesEvent.java b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/ShowOccurrencesEvent.java
new file mode 100644
index 0000000..1e28702
--- /dev/null
+++ b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/ShowOccurrencesEvent.java
@@ -0,0 +1,36 @@
+/**
+ *
+ */
+package org.gcube.portlets.user.speciesdiscovery.client.event;
+
+import com.google.gwt.event.shared.GwtEvent;
+
+/**
+ * @author "Federico De Faveri defaveri@isti.cnr.it"
+ *
+ */
+public class ShowOccurrencesEvent extends GwtEvent {
+
+ public static final GwtEvent.Type TYPE = new Type();
+
+ @Override
+ public Type getAssociatedType() {
+ return TYPE;
+ }
+
+ @Override
+ protected void dispatch(ShowOccurrencesEventHandler handler) {
+ handler.onShowOccurrences(this);
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public String toString() {
+ StringBuilder builder = new StringBuilder();
+ builder.append("ShowOccurrencesEvent []");
+ return builder.toString();
+ }
+
+}
diff --git a/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/ShowOccurrencesEventHandler.java b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/ShowOccurrencesEventHandler.java
new file mode 100644
index 0000000..4ebb60d
--- /dev/null
+++ b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/ShowOccurrencesEventHandler.java
@@ -0,0 +1,16 @@
+/**
+ *
+ */
+package org.gcube.portlets.user.speciesdiscovery.client.event;
+
+import com.google.gwt.event.shared.EventHandler;
+
+/**
+ * @author "Federico De Faveri defaveri@isti.cnr.it"
+ *
+ */
+public interface ShowOccurrencesEventHandler extends EventHandler {
+
+ public void onShowOccurrences(ShowOccurrencesEvent event);
+
+}
diff --git a/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/ShowOccurrencesMapEvent.java b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/ShowOccurrencesMapEvent.java
new file mode 100644
index 0000000..8e048c7
--- /dev/null
+++ b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/ShowOccurrencesMapEvent.java
@@ -0,0 +1,45 @@
+/**
+ *
+ */
+package org.gcube.portlets.user.speciesdiscovery.client.event;
+
+import com.google.gwt.event.shared.GwtEvent;
+
+/**
+ * @author "Federico De Faveri defaveri@isti.cnr.it"
+ *
+ */
+public class ShowOccurrencesMapEvent extends GwtEvent {
+
+ public static final GwtEvent.Type TYPE = new Type();
+ private int expectedPoints;
+
+ public ShowOccurrencesMapEvent(int expectedPoints) {
+ this.expectedPoints = expectedPoints;
+ }
+
+ @Override
+ public Type getAssociatedType() {
+ return TYPE;
+ }
+
+ @Override
+ protected void dispatch(ShowOccurrencesMapEventHandler handler) {
+ handler.onShowOccurrencesMap(this);
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public String toString() {
+ StringBuilder builder = new StringBuilder();
+ builder.append("ShowOccurrencesMapEvent []");
+ return builder.toString();
+ }
+
+ public int getExpectedPoints() {
+ return expectedPoints;
+ }
+
+}
diff --git a/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/ShowOccurrencesMapEventHandler.java b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/ShowOccurrencesMapEventHandler.java
new file mode 100644
index 0000000..e9dd32b
--- /dev/null
+++ b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/ShowOccurrencesMapEventHandler.java
@@ -0,0 +1,16 @@
+/**
+ *
+ */
+package org.gcube.portlets.user.speciesdiscovery.client.event;
+
+import com.google.gwt.event.shared.EventHandler;
+
+/**
+ * @author "Federico De Faveri defaveri@isti.cnr.it"
+ *
+ */
+public interface ShowOccurrencesMapEventHandler extends EventHandler {
+
+ public void onShowOccurrencesMap(ShowOccurrencesMapEvent event);
+
+}
diff --git a/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/ShowOnlySelectedRowEvent.java b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/ShowOnlySelectedRowEvent.java
new file mode 100644
index 0000000..89cb29a
--- /dev/null
+++ b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/ShowOnlySelectedRowEvent.java
@@ -0,0 +1,53 @@
+/**
+ *
+ */
+package org.gcube.portlets.user.speciesdiscovery.client.event;
+
+import com.google.gwt.event.shared.GwtEvent;
+
+/**
+ * @author "Federico De Faveri defaveri@isti.cnr.it"
+ *
+ */
+public class ShowOnlySelectedRowEvent extends GwtEvent {
+
+ public static final GwtEvent.Type TYPE = new Type();
+
+ @Override
+ public Type getAssociatedType() {
+ return TYPE;
+ }
+
+ @Override
+ protected void dispatch(ShowOnlySelectedRowEventHandler handler) {
+ handler.onShowOnlySelectedRow(this);
+ }
+
+ protected boolean onlySelected;
+
+ /**
+ * @param onlySelected
+ */
+ public ShowOnlySelectedRowEvent(boolean onlySelected) {
+ this.onlySelected = onlySelected;
+ }
+
+ /**
+ * @return the onlySelected
+ */
+ public boolean isOnlySelected() {
+ return onlySelected;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public String toString() {
+ StringBuilder builder = new StringBuilder();
+ builder.append("ShowOnlySelectedRowEvent [onlySelected=");
+ builder.append(onlySelected);
+ builder.append("]");
+ return builder.toString();
+ }
+}
diff --git a/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/ShowOnlySelectedRowEventHandler.java b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/ShowOnlySelectedRowEventHandler.java
new file mode 100644
index 0000000..eb5b338
--- /dev/null
+++ b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/ShowOnlySelectedRowEventHandler.java
@@ -0,0 +1,16 @@
+/**
+ *
+ */
+package org.gcube.portlets.user.speciesdiscovery.client.event;
+
+import com.google.gwt.event.shared.EventHandler;
+
+/**
+ * @author "Federico De Faveri defaveri@isti.cnr.it"
+ *
+ */
+public interface ShowOnlySelectedRowEventHandler extends EventHandler {
+
+ public void onShowOnlySelectedRow(ShowOnlySelectedRowEvent event);
+
+}
diff --git a/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/UpdateAllRowSelectionEvent.java b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/UpdateAllRowSelectionEvent.java
new file mode 100644
index 0000000..65b7df4
--- /dev/null
+++ b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/UpdateAllRowSelectionEvent.java
@@ -0,0 +1,46 @@
+/**
+ *
+ */
+package org.gcube.portlets.user.speciesdiscovery.client.event;
+
+import org.gcube.portlets.user.speciesdiscovery.shared.SearchResultType;
+
+import com.google.gwt.event.shared.GwtEvent;
+
+
+/**
+ * @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
+ *
+ */
+public class UpdateAllRowSelectionEvent extends GwtEvent {
+
+ public static final GwtEvent.Type TYPE = new Type();
+ private boolean selectionValue;
+ private SearchResultType searchType;
+
+
+ @Override
+ public Type getAssociatedType() {
+ return TYPE;
+ }
+
+ @Override
+ protected void dispatch(UpdateAllRowSelectionEventHandler handler) {
+ handler.onUpdateAllRowSelection(this);
+ }
+
+ public UpdateAllRowSelectionEvent(boolean selectionValue, SearchResultType type){
+ this.selectionValue = selectionValue;
+ this.searchType = type;
+
+ }
+
+ public boolean getSelectionValue() {
+ return selectionValue;
+ }
+
+ public SearchResultType getSearchType() {
+ return searchType;
+ }
+
+}
diff --git a/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/UpdateAllRowSelectionEventHandler.java b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/UpdateAllRowSelectionEventHandler.java
new file mode 100644
index 0000000..4ff6d75
--- /dev/null
+++ b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/UpdateAllRowSelectionEventHandler.java
@@ -0,0 +1,16 @@
+/**
+ *
+ */
+package org.gcube.portlets.user.speciesdiscovery.client.event;
+
+import com.google.gwt.event.shared.EventHandler;
+
+/**
+ *
+ * @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
+ *
+ */
+public interface UpdateAllRowSelectionEventHandler extends EventHandler {
+ public void onUpdateAllRowSelection(UpdateAllRowSelectionEvent updateAllRowSelectionEvent);
+
+}
diff --git a/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/UpdateFilterOnResultEvent.java b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/UpdateFilterOnResultEvent.java
new file mode 100644
index 0000000..68540cf
--- /dev/null
+++ b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/UpdateFilterOnResultEvent.java
@@ -0,0 +1,39 @@
+/**
+ *
+ */
+package org.gcube.portlets.user.speciesdiscovery.client.event;
+
+import org.gcube.portlets.user.speciesdiscovery.client.util.SpeciesGridFields;
+import org.gcube.portlets.user.speciesdiscovery.shared.filter.ResultFilter;
+
+import com.google.gwt.event.shared.GwtEvent;
+
+
+/**
+ * @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
+ *
+ */
+public class UpdateFilterOnResultEvent extends GwtEvent {
+
+ public static final GwtEvent.Type TYPE = new Type();
+ private ResultFilter activeFilterObject;
+ private SpeciesGridFields updateFilterId;
+
+ public SpeciesGridFields getUpdateFilterId() {
+ return updateFilterId;
+ }
+
+ @Override
+ public Type getAssociatedType() {
+ return TYPE;
+ }
+
+ @Override
+ protected void dispatch(UpdateFilterOnResultEventHandler handler) {
+ handler.onUpdateFilter(this);
+ }
+
+ public UpdateFilterOnResultEvent(SpeciesGridFields filterId) {
+ this.updateFilterId = filterId;
+ }
+}
diff --git a/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/UpdateFilterOnResultEventHandler.java b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/UpdateFilterOnResultEventHandler.java
new file mode 100644
index 0000000..692a453
--- /dev/null
+++ b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/UpdateFilterOnResultEventHandler.java
@@ -0,0 +1,15 @@
+/**
+ *
+ */
+package org.gcube.portlets.user.speciesdiscovery.client.event;
+
+import com.google.gwt.event.shared.EventHandler;
+
+/**
+ * @author "Federico De Faveri defaveri@isti.cnr.it"
+ *
+ */
+public interface UpdateFilterOnResultEventHandler extends EventHandler {
+ public void onUpdateFilter(UpdateFilterOnResultEvent updateFilterOnResultEvent);
+
+}
diff --git a/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/UpdateRowSelectionEvent.java b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/UpdateRowSelectionEvent.java
new file mode 100644
index 0000000..c2abcf9
--- /dev/null
+++ b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/UpdateRowSelectionEvent.java
@@ -0,0 +1,44 @@
+/**
+ *
+ */
+package org.gcube.portlets.user.speciesdiscovery.client.event;
+
+import com.google.gwt.event.shared.GwtEvent;
+
+
+/**
+ * @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
+ *
+ */
+public class UpdateRowSelectionEvent extends GwtEvent {
+
+ public static final GwtEvent.Type TYPE = new Type();
+ private int rowId;
+ private boolean selectionValue;
+
+
+ @Override
+ public Type getAssociatedType() {
+ return TYPE;
+ }
+
+ @Override
+ protected void dispatch(UpdateRowSelectionEventHandler handler) {
+ handler.onUpdateRowSelection(this);
+ }
+
+ public UpdateRowSelectionEvent(int rowId, boolean selectionValue){
+ this.rowId = rowId;
+ this.selectionValue = selectionValue;
+
+ }
+
+ public int getRowId() {
+ return rowId;
+ }
+
+ public boolean getSelectionValue() {
+ return selectionValue;
+ }
+
+}
diff --git a/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/UpdateRowSelectionEventHandler.java b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/UpdateRowSelectionEventHandler.java
new file mode 100644
index 0000000..156b990
--- /dev/null
+++ b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/UpdateRowSelectionEventHandler.java
@@ -0,0 +1,15 @@
+/**
+ *
+ */
+package org.gcube.portlets.user.speciesdiscovery.client.event;
+
+import com.google.gwt.event.shared.EventHandler;
+
+/**
+ * @author "Federico De Faveri defaveri@isti.cnr.it"
+ *
+ */
+public interface UpdateRowSelectionEventHandler extends EventHandler {
+ public void onUpdateRowSelection(UpdateRowSelectionEvent updateRowSelectionEvent);
+
+}
diff --git a/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/ViewDetailsOfSelectedEvent.java b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/ViewDetailsOfSelectedEvent.java
new file mode 100644
index 0000000..e908a5c
--- /dev/null
+++ b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/ViewDetailsOfSelectedEvent.java
@@ -0,0 +1,30 @@
+/**
+ *
+ */
+package org.gcube.portlets.user.speciesdiscovery.client.event;
+
+import com.google.gwt.event.shared.GwtEvent;
+
+
+/**
+ * @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
+ *
+ */
+public class ViewDetailsOfSelectedEvent extends GwtEvent {
+
+ public static final GwtEvent.Type TYPE = new Type();
+
+ @Override
+ public Type getAssociatedType() {
+ return TYPE;
+ }
+
+ @Override
+ protected void dispatch(ViewDetailsOfSelectedEventHandler handler) {
+ handler.onViewDetails(this);
+ }
+
+ public ViewDetailsOfSelectedEvent() {
+ }
+
+}
diff --git a/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/ViewDetailsOfSelectedEventHandler.java b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/ViewDetailsOfSelectedEventHandler.java
new file mode 100644
index 0000000..3d7826c
--- /dev/null
+++ b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/ViewDetailsOfSelectedEventHandler.java
@@ -0,0 +1,15 @@
+/**
+ *
+ */
+package org.gcube.portlets.user.speciesdiscovery.client.event;
+
+import com.google.gwt.event.shared.EventHandler;
+
+/**
+ * @author "Federico De Faveri defaveri@isti.cnr.it"
+ *
+ */
+public interface ViewDetailsOfSelectedEventHandler extends EventHandler {
+ public void onViewDetails(ViewDetailsOfSelectedEvent viewDetailsOfSelectedEvent);
+
+}
diff --git a/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/externalsystem/ExternalSystemInterface.java b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/externalsystem/ExternalSystemInterface.java
new file mode 100644
index 0000000..8b773f7
--- /dev/null
+++ b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/externalsystem/ExternalSystemInterface.java
@@ -0,0 +1,12 @@
+package org.gcube.portlets.user.speciesdiscovery.client.externalsystem;
+
+/**
+ * @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
+ *
+ */
+public interface ExternalSystemInterface {
+
+ public String getName();
+ public String getBaseUrl();
+ public String getSuffixUrl();
+}
diff --git a/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/externalsystem/OtherInformationSystemsEnum.java b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/externalsystem/OtherInformationSystemsEnum.java
new file mode 100644
index 0000000..1468a70
--- /dev/null
+++ b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/externalsystem/OtherInformationSystemsEnum.java
@@ -0,0 +1,47 @@
+package org.gcube.portlets.user.speciesdiscovery.client.externalsystem;
+
+/**
+ * @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
+ *
+ */
+public enum OtherInformationSystemsEnum implements ExternalSystemInterface{
+
+// CATALOGUEOFLIFE("Catalogue Of Life", "http://www.catalogueoflife.org/annual-checklist/2006/search_results.php?search_string="),
+ CATALOGUEOFLIFE("Catalogue Of Life", " http://www.catalogueoflife.org/col/search/all/key/", "/match/1"),
+ ENCICOLPEDIAOFLIFE("Encyclopedia of Life","http://www.eol.org/search?ie=UTF-8&search_type=text&q=", ""),
+ BARCODEOFLIFE("Barcode of Life","http://www.boldsystems.org/index.php/Taxbrowser_Taxonpage?taxon=", ""),
+ GENBANK("GenBank","http://www.ncbi.nlm.nih.gov/Taxonomy/Browser/wwwtax.cgi?name=", ""),
+ UBIO("uBio","http://www.ubio.org/browser/search.php?search_all=", ""),
+ SPECIESIDENTIFICATIONORG("Species-identification.org","http://species-identification.org/search.php?search_mode=basic&search_for=", "");
+
+ private String name;
+ private String baseUrl;
+ private String suffixUrl;
+
+ /**
+ *
+ * @param name
+ * @param value
+ */
+ private OtherInformationSystemsEnum(String name, String baseUrl, String suffixUrl) {
+ this.name = name;
+ this.baseUrl = baseUrl;
+ this.suffixUrl = suffixUrl;
+ }
+
+ @Override
+ public String getName() {
+ return name;
+ }
+
+ @Override
+ public String getBaseUrl() {
+ return baseUrl;
+ }
+
+ @Override
+ public String getSuffixUrl() {
+ return suffixUrl;
+ }
+
+}
diff --git a/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/externalsystem/OtherMappingSystemsEnum.java b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/externalsystem/OtherMappingSystemsEnum.java
new file mode 100644
index 0000000..8582844
--- /dev/null
+++ b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/externalsystem/OtherMappingSystemsEnum.java
@@ -0,0 +1,42 @@
+package org.gcube.portlets.user.speciesdiscovery.client.externalsystem;
+
+/**
+ * @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
+ *
+ */
+public enum OtherMappingSystemsEnum implements ExternalSystemInterface{
+ GBIF("GBIF", "http://data.gbif.org/species/species/", ""),
+ DISCOVERLIFE("DiscoverLife", "http://www.discoverlife.org/mp/20q?search=", "");
+
+
+ private String name;
+ private String url;
+ private String suffixUrl;
+
+ /**
+ *
+ * @param name
+ * @param url
+ */
+ private OtherMappingSystemsEnum(String name, String url, String suffixUrl) {
+ this.name = name;
+ this.url = url;
+ this.suffixUrl = suffixUrl;
+ }
+
+ @Override
+ public String getName() {
+ return name;
+ }
+
+ @Override
+ public String getBaseUrl() {
+ return url;
+ }
+
+ @Override
+ public String getSuffixUrl() {
+ return this.suffixUrl;
+ }
+
+}
diff --git a/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/filterresult/ClassificationFilter.java b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/filterresult/ClassificationFilter.java
new file mode 100644
index 0000000..e6ea5e1
--- /dev/null
+++ b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/filterresult/ClassificationFilter.java
@@ -0,0 +1,403 @@
+package org.gcube.portlets.user.speciesdiscovery.client.filterresult;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+
+import org.gcube.portlets.user.speciesdiscovery.client.ConstantsSpeciesDiscovery;
+import org.gcube.portlets.user.speciesdiscovery.client.event.ActiveFilterOnResultEvent;
+import org.gcube.portlets.user.speciesdiscovery.client.event.ChangeFilterClassificationOnResultEvent;
+import org.gcube.portlets.user.speciesdiscovery.client.model.ClassificationModel;
+import org.gcube.portlets.user.speciesdiscovery.shared.MainTaxonomicRankEnum;
+import org.gcube.portlets.user.speciesdiscovery.shared.filter.ResultFilter;
+
+import com.allen_sauer.gwt.log.client.Log;
+import com.extjs.gxt.ui.client.Style.SelectionMode;
+import com.extjs.gxt.ui.client.data.ModelIconProvider;
+import com.extjs.gxt.ui.client.event.SelectionChangedEvent;
+import com.extjs.gxt.ui.client.event.SelectionChangedListener;
+import com.extjs.gxt.ui.client.store.Record;
+import com.extjs.gxt.ui.client.store.Store;
+import com.extjs.gxt.ui.client.store.StoreSorter;
+import com.extjs.gxt.ui.client.store.TreeStore;
+import com.extjs.gxt.ui.client.widget.ContentPanel;
+import com.extjs.gxt.ui.client.widget.Html;
+import com.extjs.gxt.ui.client.widget.form.ComboBox.TriggerAction;
+import com.extjs.gxt.ui.client.widget.form.SimpleComboBox;
+import com.extjs.gxt.ui.client.widget.form.SimpleComboValue;
+import com.extjs.gxt.ui.client.widget.toolbar.ToolBar;
+import com.extjs.gxt.ui.client.widget.treepanel.TreePanel;
+import com.google.gwt.event.shared.EventBus;
+import com.google.gwt.user.client.ui.AbstractImagePrototype;
+
+/**
+ * @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
+ *
+ */
+public class ClassificationFilter implements ResultFilterPanelInterface{
+
+ private ContentPanel classifPanel = new ContentPanel();
+ private TreePanel treePanel;
+ private TreeStore store;
+ private final String NORANK = "NO RANK";
+ private SimpleComboBox scbGroupByRank;
+ private EventBus eventBus;
+// private HashMap hashKingdomLevel = new HashMap();
+ private ToolBar toolbar = new ToolBar();
+ private String currentRank;
+
+
+ public ClassificationFilter(){
+ setHeaderTitle();
+ init();
+ setAlphanumericStoreSorter();
+
+ addDefaultNodes();
+ addListners();
+ setExpandTreeLevel(ConstantsSpeciesDiscovery.BIOTACLASSID, true); //expand root level
+
+ initComboGroupRankFilter();
+ initToolBar();
+
+ classifPanel.setTopComponent(toolbar);
+
+ }
+
+ private SimpleComboBox initComboGroupRankFilter() {
+
+ List ls = new ArrayList();
+
+ for (String rank : MainTaxonomicRankEnum.getListLabels()) ls.add(rank);
+
+ scbGroupByRank = new SimpleComboBox();
+ scbGroupByRank.setTypeAhead(true);
+ scbGroupByRank.setEditable(false);
+ scbGroupByRank.setTriggerAction(TriggerAction.ALL);
+
+ scbGroupByRank.add(ls);
+
+ scbGroupByRank.setSimpleValue(MainTaxonomicRankEnum.CLASS.getLabel()); //is Class
+
+ addListnerOnChangeClassificationFilter();
+
+ return scbGroupByRank;
+ }
+
+ public String getGroupRank(){
+ return scbGroupByRank.getSimpleValue();
+ }
+
+
+ public void addListnerOnChangeClassificationFilter(){
+
+ scbGroupByRank.addSelectionChangedListener(new SelectionChangedListener>() {
+
+ @Override
+ public void selectionChanged(SelectionChangedEvent> se) {
+
+ if(eventBus!=null){
+ eventBus.fireEvent(new ChangeFilterClassificationOnResultEvent());
+ }
+ }
+ });
+
+ }
+
+ private void initToolBar(){
+ toolbar = new ToolBar();
+
+ toolbar.setStyleName("toolbar-filter");
+ toolbar.setStyleAttribute("padding-right", "1px");
+// toolbar.add(new FillToolItem());
+
+ Html textGroupBy = new Html("Group by: ");
+ textGroupBy.setStyleAttribute("font-style", "italic");
+ textGroupBy.setStyleAttribute("font-size", "10px");
+ textGroupBy.setStyleAttribute("padding-left", "5px");
+ textGroupBy.setStyleAttribute("padding-right", "5px");
+
+ scbGroupByRank.setStyleAttribute("margin-right", "2px");
+ toolbar.add(textGroupBy);
+
+
+ toolbar.add(textGroupBy);
+ toolbar.add(scbGroupByRank);
+ }
+
+ public void setEventBus(EventBus eventBus){
+ this.eventBus = eventBus;
+ }
+
+
+
+ private void addDefaultNodes(){
+
+ //INSERT STATIC LEVELS
+ store.insert(createRoot(), 0, false);
+// store.add(store.getRootItems().get(0), createChildren(),false);
+ }
+
+ private void init() {
+
+ store = new TreeStore();
+
+ treePanel = new TreePanel(store){
+
+ @Override
+ public boolean hasChildren(ClassificationModel parent) {
+ if (!parent.isLeaf()) {
+ return true;
+ }
+ return super.hasChildren(parent);
+ }
+
+ };
+
+ // SET icons in tree panel
+ treePanel.setIconProvider(new ModelIconProvider() {
+
+ public AbstractImagePrototype getIcon(ClassificationModel model) {
+ if (!model.isLeaf()){
+
+// return Resources.getIconByFolderItemType(model.getGXTFolderItemType());
+ }
+ return null;
+ }
+ });
+
+ treePanel.setStateful(false);
+
+ // statefull components need a defined id
+ treePanel.setId("treeClassification");
+
+ treePanel.setDisplayProperty(ConstantsSpeciesDiscovery.NAME);
+ //Single selection Mode
+ treePanel.getSelectionModel().setSelectionMode(SelectionMode.SINGLE);
+
+ classifPanel.add(treePanel);
+ }
+
+ @Override
+ public ContentPanel getPanel() {
+ return classifPanel;
+ }
+
+ @Override
+ public String getName() {
+ return ResultFilterPanelEnum.CLASSIFICATION.getLabel();
+ }
+
+ @Override
+ public void setHeaderTitle() {
+ classifPanel.setHeading(this.getName());
+ }
+
+
+ private ClassificationModel createRoot(){
+ return new ClassificationModel(ConstantsSpeciesDiscovery.BIOTACLASSID, ConstantsSpeciesDiscovery.BIOTACLASS, null, null, false);
+ }
+
+
+ private void setAlphanumericStoreSorter(){
+
+ // Sorting
+ store.setStoreSorter(new StoreSorter() {
+
+ @Override
+ public int compare(Store store, ClassificationModel m1, ClassificationModel m2, String property) {
+ boolean m1Folder = m1.isLeaf();
+ boolean m2Folder = m2.isLeaf();
+
+ if (m1Folder && !m2Folder) {
+ return -1;
+ } else if (!m1Folder && m2Folder) {
+ return 1;
+ }
+
+ if(m1.getName().compareToIgnoreCase(m2.getName())<0)
+ return -1;
+ else
+ return 1;
+
+ }
+ });
+ }
+
+
+ public void setExpandTreeLevel(String identifier, boolean bool) {
+ ClassificationModel item = getFileModelByIdentifier(identifier);
+ if(item!=null)
+ treePanel.setExpanded(item, bool);
+ }
+
+ /**
+ *
+ * @param id
+ * @return
+ */
+ public ClassificationModel getFileModelByIdentifier(String id){
+
+ return treePanel.getStore().findModel(ConstantsSpeciesDiscovery.ID, id);
+
+ }
+
+
+ /**
+ *
+ * @param fileTarget (MANDATORY)
+ * @param newName (MANDATORY)
+ * @param extension OPTIONAL - string or null
+ */
+ public boolean renameItem(String identifier, String newName, Integer counter) {
+
+// FileModel fileTarget = treePanel.getStore().findModel(ConstantsExplorer.IDENTIFIER, identifier);
+
+ ClassificationModel fileTarget = getFileModelByIdentifier(identifier);
+
+ return renameItem(fileTarget,newName,counter);
+
+ }
+
+ /**
+ *
+ * @param identifier
+ * @param counter
+ * @return
+ */
+ public boolean updateItemCounter(String parentId, String itemIdentifier, String itemName, String rank, String itemBaseTaxonId, String baseTaxonName, int counter) {
+
+ ClassificationModel fileTarget = getFileModelByIdentifier(itemIdentifier);
+
+ if(fileTarget==null){
+ ClassificationModel parent = getFileModelByIdentifier(parentId);
+// store.add(parent, new ClassificationModel(itemIdentifier,itemName, itemBaseTaxonId, baseTaxonName, true),false);
+ store.add(parent, new ClassificationModel(itemIdentifier, itemName, rank, itemBaseTaxonId, baseTaxonName, true, counter),false);
+
+ fileTarget = getFileModelByIdentifier(itemIdentifier);
+ }
+ else
+ fileTarget.setCountOf(counter);
+
+
+ return renameItem(fileTarget, itemName, counter);
+
+ }
+
+ /**
+ *
+ * @param fileTarget (MANDATORY)
+ * @param newName (MANDATORY)
+ * @param extension OPTIONAL - string or null
+ */
+ private boolean renameItem(ClassificationModel fileTarget, String newName, Integer counter) {
+
+ if(fileTarget!=null){
+ Record record = treePanel.getStore().getRecord(fileTarget);
+ if(record!=null){
+ if(counter!= null)
+ if(newName!=null)
+ record.set(ConstantsSpeciesDiscovery.NAME, newName+"("+counter.intValue()+")");
+ else
+ record.set(ConstantsSpeciesDiscovery.NAME, fileTarget.getName()+"("+counter.intValue()+")");
+ else
+ if(newName!=null)
+ record.set(ConstantsSpeciesDiscovery.NAME, newName);
+ else
+ record.set(ConstantsSpeciesDiscovery.NAME, fileTarget.getName());
+
+ return true;
+ }
+ else
+ Log.error("Record Error: file target with " + fileTarget.getId() + " identifier not exist in store" );
+ }
+ else
+ Log.error("Rename Error: file target not exist in store" );
+
+ return false;
+ }
+
+
+ public void loadDataSourceClassification(HashMap result, String rank) {
+
+ currentRank = rank;
+
+ for(String key: result.keySet()){
+
+ ClassificationModel cm = result.get(key);
+
+ String name = cm.getClassificationRank() + " - "+cm.getName();
+
+ String kingdomValue = cm.getBaseTaxonName();
+
+ //if kingdom value not exists create new kingdom folder in the tree
+ if(getFileModelByIdentifier(kingdomValue)==null){
+ store.add(store.getRootItems().get(0), new ClassificationModel(kingdomValue, kingdomValue, cm.getBaseTaxonId(),cm.getBaseTaxonName(), false),false);
+ setExpandTreeLevel(kingdomValue, true);
+ }
+
+
+ if(cm.getBaseTaxonName().equalsIgnoreCase(ConstantsSpeciesDiscovery.UNKNOWN)){
+
+ if(rank.compareToIgnoreCase(cm.getClassificationRank())==0) //in this case was found rank but was not found kingdom
+ name = cm.getClassificationRank() +" - "+cm.getName();
+ else
+// name = "["+NORANK+" " + rank+"] - " + cm.getClassificationRank() +" - "+cm.getName();
+ name = "["+NORANK+" " + rank+"] - " + cm.getClassificationRank();
+
+ }
+ updateItemCounter(kingdomValue, cm.getId(), name, cm.getClassificationRank(), cm.getBaseTaxonId(),cm.getBaseTaxonName(), cm.getCountOf());
+
+// System.out.println("################################ key class : "+ key +", item name: "+ cm.getName() + ", item id: " +cm.getId() + ", item baseTaxon: "+cm.getBaseTaxonName() + ", item count " +cm.getGroupedIdClassificationList().size() );
+// for(Integer id: cm.getGroupedIdClassificationList()){
+// System.out.println("current id "+ id);
+// }
+ }
+ }
+
+
+ private void addListners(){
+
+ treePanel.getSelectionModel().addSelectionChangedListener(new SelectionChangedListener() {
+
+ @Override
+ public void selectionChanged(SelectionChangedEvent selectedEvent) {
+
+ ClassificationModel cm = selectedEvent.getSelectedItem();
+
+ if(cm!=null){
+ if(cm.isLeaf()){
+ ResultFilter activeFilter = new ResultFilter();
+ activeFilter.setByClassification(true);
+// activeFilter.setListByClassification(cm.getGroupedIdClassificationList());
+// String key = cm.getName().substring(0, cm.getName().indexOf("("));
+// activeFilter.setFilterValue(cm.getName().substring(0, cm.getName().indexOf("(")));
+
+ activeFilter.setClassification(currentRank, cm.getId(), cm.getCountOf());
+
+ activeFilter.setFilterValue(cm.getId()); //cm.getId() is taxonId stored into DB
+
+ treePanel.disableEvents(true);
+ treePanel.getSelectionModel().deselect(cm);
+ treePanel.enableEvents(true);
+
+ eventBus.fireEvent(new ActiveFilterOnResultEvent(activeFilter));
+ }
+ }
+ }
+ });
+
+ }
+
+ public void reset() {
+ store.removeAll();
+ addDefaultNodes();
+ setExpandTreeLevel(ConstantsSpeciesDiscovery.BIOTACLASSID, true); //expand BIOTACLASSID level
+ }
+
+
+ @Override
+ public void loadDataSource(HashMap result) {
+ return;
+ }
+
+}
diff --git a/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/filterresult/DataProviderFilter.java b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/filterresult/DataProviderFilter.java
new file mode 100644
index 0000000..a2f0962
--- /dev/null
+++ b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/filterresult/DataProviderFilter.java
@@ -0,0 +1,181 @@
+package org.gcube.portlets.user.speciesdiscovery.client.filterresult;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
+
+import org.gcube.portlets.user.speciesdiscovery.client.ConstantsSpeciesDiscovery;
+import org.gcube.portlets.user.speciesdiscovery.client.event.ActiveFilterOnResultEvent;
+import org.gcube.portlets.user.speciesdiscovery.client.event.UpdateFilterOnResultEvent;
+import org.gcube.portlets.user.speciesdiscovery.client.resources.Resources;
+import org.gcube.portlets.user.speciesdiscovery.client.util.SpeciesGridFields;
+import org.gcube.portlets.user.speciesdiscovery.shared.filter.ResultFilter;
+
+import com.extjs.gxt.ui.client.Style.Scroll;
+import com.extjs.gxt.ui.client.event.ButtonEvent;
+import com.extjs.gxt.ui.client.event.SelectionListener;
+import com.extjs.gxt.ui.client.widget.ContentPanel;
+import com.extjs.gxt.ui.client.widget.VerticalPanel;
+import com.extjs.gxt.ui.client.widget.button.Button;
+import com.extjs.gxt.ui.client.widget.toolbar.FillToolItem;
+import com.extjs.gxt.ui.client.widget.toolbar.ToolBar;
+import com.google.gwt.event.shared.EventBus;
+import com.google.gwt.user.client.ui.AbstractImagePrototype;
+
+/**
+ * @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
+ *
+ */
+public class DataProviderFilter implements ResultFilterPanelInterface{
+
+ private static final String SORT_RESULTS = "Sort results";
+ private ContentPanel dataProvPanel = new ContentPanel();
+ private VerticalPanel vp = new VerticalPanel();
+ private HashMap hashButton = new HashMap();
+ private EventBus eventBus;
+
+
+ public DataProviderFilter(){
+ setHeaderTitle();
+ vp.setStyleAttribute("margin-left", DEFAULTMARGINLEFT);
+ dataProvPanel.setScrollMode(Scroll.AUTO);
+ dataProvPanel.add(vp);
+ createToolBar();
+ }
+
+ @Override
+ public ContentPanel getPanel() {
+ return dataProvPanel;
+ }
+
+ @Override
+ public String getName() {
+ return ResultFilterPanelEnum.DATAPROVIDER.getLabel();
+ }
+
+ @Override
+ public void setHeaderTitle() {
+ dataProvPanel.setHeading(this.getName());
+
+ }
+
+ public void createToolBar(){
+
+ ToolBar toolbar = new ToolBar();
+
+ Button buttonSortResult = new Button(SORT_RESULTS);
+ buttonSortResult.setStyleName("button-noimage");
+ buttonSortResult.setWidth(100);
+
+ buttonSortResult.setIcon(AbstractImagePrototype.create(Resources.INSTANCE.getSortIcon()));
+ buttonSortResult.setToolTip(ConstantsSpeciesDiscovery.SORTMESSAGE);
+ buttonSortResult.addSelectionListener(new SelectionListener() {
+
+ @Override
+ public void componentSelected(ButtonEvent ce) {
+ reloadDataSort();
+ }
+ });
+
+ toolbar.add(buttonSortResult);
+ toolbar.add(new FillToolItem());
+
+ Button buttonReload = new Button("");
+ buttonReload.setStyleName("button-noimage");
+ buttonReload.setIcon(AbstractImagePrototype.create(Resources.INSTANCE.getReload()));
+ buttonReload.setToolTip("Reload filter");
+ buttonReload.addSelectionListener(new SelectionListener() {
+
+ @Override
+ public void componentSelected(ButtonEvent ce) {
+ reset();
+ eventBus.fireEvent(new UpdateFilterOnResultEvent(SpeciesGridFields.DATAPROVIDER));
+ }
+ });
+
+ toolbar.add(buttonReload);
+
+
+ toolbar.setStyleName("toolbar-filter");
+
+ dataProvPanel.setTopComponent(toolbar);
+
+ }
+
+ public void setEventBus(EventBus eventBus){
+ this.eventBus = eventBus;
+ }
+
+
+ public void loadDataSource(HashMap result) {
+
+ for(final String key: result.keySet()){
+
+ Button butt = hashButton.get(key);
+ final Integer counter = result.get(key);
+
+ if(butt!=null){
+
+ String oldText = butt.getText();
+
+ int start = oldText.indexOf("(");
+ String description = oldText.substring(0,start);
+ butt.setText(description+" ("+counter+")");
+ butt.setData("counter", counter);
+
+ }
+ else{
+
+ butt = new Button(key +" ("+counter+")");
+ butt.setStyleAttribute("margin", DEFAULTMARGIN);
+ butt.setData("counter", counter);
+ butt.addSelectionListener(new SelectionListener