Performed refactoring

This commit is contained in:
Francesco Mangiacrapa 2022-09-21 09:34:02 +02:00
parent 226c65ade6
commit 8d4b53388c
7 changed files with 203 additions and 131 deletions

View File

@ -764,7 +764,7 @@ public class GeoPortalDataEntryApp implements EntryPoint {
if (searchingFilter == null || getListOfRecordsEvent.isOnApplicationInit()
|| getListOfRecordsEvent.isReloadFilteringParameters()) {
mainTabPanel.setFilteringParameters(seachingFilterParameters);
searchingFilter = mainTabPanel.getCurrentSearchingFilter();
searchingFilter = mainTabPanel.getCurrentProjectsSearchingFilter();
}
// TODO MUST MANAGE getListOfRecordsEvent.isReloadFilteringParameters()
@ -898,7 +898,7 @@ public class GeoPortalDataEntryApp implements EntryPoint {
appManagerBus.fireEvent(new GetListOfRecordsEvent(false,
resultDocumentDV.getProfileID(),
mainTabPanel.getCurrentSearchingFilter(), true));
mainTabPanel.getCurrentProjectsSearchingFilter(), true));
}
});
@ -951,7 +951,7 @@ public class GeoPortalDataEntryApp implements EntryPoint {
// mainTabPanel.getCurrentSortFilter()));
appManagerBus.fireEvent(new GetListOfRecordsEvent(false, grpw.getProfileID(),
mainTabPanel.getCurrentSearchingFilter(), false));
mainTabPanel.getCurrentProjectsSearchingFilter(), false));
break;
}
}
@ -1209,7 +1209,7 @@ public class GeoPortalDataEntryApp implements EntryPoint {
appManagerBus.fireEvent(new GetListOfRecordsEvent(false,
resultDocumentDV.getProfileID(),
mainTabPanel.getCurrentSearchingFilter(), false));
mainTabPanel.getCurrentProjectsSearchingFilter(), false));
} else {
modal.setTitle("Error");
Alert alert = new Alert(

View File

@ -18,8 +18,8 @@ import org.gcube.portlets.user.geoportaldataentry.client.events.CreateNewProject
import org.gcube.portlets.user.geoportaldataentry.client.events.GetListOfRecordsEvent;
import org.gcube.portlets.user.geoportaldataentry.client.events.OperationOnItemEvent;
import org.gcube.portlets.user.geoportaldataentry.client.ui.form.GeonaDataEntryMainForm;
import org.gcube.portlets.user.geoportaldataentry.client.ui.projects.ListOfProjectCenterPanel;
import org.gcube.portlets.user.geoportaldataentry.client.ui.projects.ListOfProjectNorthPanel;
import org.gcube.portlets.user.geoportaldataentry.client.ui.projects.ListOfProjectTablePanel;
import org.gcube.portlets.user.geoportaldataentry.client.ui.projects.ListOfProjectWorkflowActionsPanel;
import org.gcube.portlets.user.geoportaldataentry.client.ui.relation.CreateRelationProjectsPanel;
import org.gcube.portlets.user.geoportaldataentry.client.ui.utils.DialogInform;
import org.gcube.portlets.user.geoportaldataentry.client.ui.utils.LoaderIcon;
@ -51,7 +51,7 @@ import com.google.gwt.user.client.ui.Widget;
*
* @author Francesco Mangiacrapa at ISTI-CNR francesco.mangiacrapa@isti.cnr.it
*
* Aug 5, 2021
* Sep 21, 2022
*/
public class GeonaMainTabPanel extends Composite {
@ -62,7 +62,7 @@ public class GeonaMainTabPanel extends Composite {
*
* @author Francesco Mangiacrapa at ISTI-CNR francesco.mangiacrapa@isti.cnr.it
*
* Aug 5, 2021
* Sep 21, 2022
*/
interface GeonaMainTabPanelUiBinder extends UiBinder<Widget, GeonaMainTabPanel> {
}
@ -132,9 +132,9 @@ public class GeonaMainTabPanel extends Composite {
private ScrollPanel detailsPanel = new ScrollPanel();
private ListOfProjectCenterPanel listOfProjectCenterPanel;
private ListOfProjectTablePanel listOfProjectTablePanel;
private ListOfProjectNorthPanel listOfProjectNorthPanel;
private ListOfProjectWorkflowActionsPanel listOfProjectWorkflowActionsPanel;
/**
* Instantiates a new geona main tab panel.
@ -146,19 +146,19 @@ public class GeonaMainTabPanel extends Composite {
this.appManagerBus = appManagerBus;
bindEvents();
listOfProjectNorthPanel = new ListOfProjectNorthPanel(appManagerBus);
listOfProjectWorkflowActionsPanel = new ListOfProjectWorkflowActionsPanel(appManagerBus);
// listOfProjectNorthPanel.setHeight("40px");
theDockLayoutPanel.addNorth(listOfProjectNorthPanel, 40);
theDockLayoutPanel.setWidgetHidden(listOfProjectNorthPanel, true);
// listOfProjectWorkflowActionsPanel.setHeight("40px");
theDockLayoutPanel.addNorth(listOfProjectWorkflowActionsPanel, 40);
theDockLayoutPanel.setWidgetHidden(listOfProjectWorkflowActionsPanel, true);
detailsPanel.addStyleName("theDetailsPanel");
theDockLayoutPanel.addEast(detailsPanel, 500);
theDockLayoutPanel.setWidgetHidden(detailsPanel, true);
listOfProjectCenterPanel = new ListOfProjectCenterPanel(appManagerBus);
listOfProjectNorthPanel.setHeight("100%");
theDockLayoutPanel.add(listOfProjectCenterPanel);
listOfProjectTablePanel = new ListOfProjectTablePanel(appManagerBus);
listOfProjectWorkflowActionsPanel.setHeight("100%");
theDockLayoutPanel.add(listOfProjectTablePanel);
setLoaderVisible("", false);
@ -172,7 +172,7 @@ public class GeonaMainTabPanel extends Composite {
public void setFilteringParameters(CacheSearchingFilterParametersFromConfig sfp) {
GWT.log("setFilteringParameters instancied");
this.cacheSearchingFilterParameters = sfp;
listOfProjectCenterPanel.setFilteringParameters(sfp);
this.listOfProjectTablePanel.setFilteringParameters(cacheSearchingFilterParameters);
}
@ -282,8 +282,7 @@ public class GeonaMainTabPanel extends Composite {
/**
* Sets the role label.
*
* @param userRole the user role
* @param roleTitle the role title
* @param userRole the user role
*/
public void setRole(GcubeUserRole userRole) {
this.userRole = userRole;
@ -311,7 +310,7 @@ public class GeonaMainTabPanel extends Composite {
*/
public void showListOfConcessioniView(GeonaRecordsPaginatedView grpw) {
this.grpw = grpw;
listOfProjectCenterPanel.showListOfConcessioniView(grpw);
listOfProjectTablePanel.showListOfConcessioniView(grpw);
}
/**
@ -326,12 +325,12 @@ public class GeonaMainTabPanel extends Composite {
}
/**
* Gets the current sort filter.
* Gets the current projects searching filter.
*
* @return the current sort filter
* @return the current projects searching filter
*/
public SearchingFilter getCurrentSearchingFilter() {
return listOfProjectCenterPanel.builtSearchingFilter();
public SearchingFilter getCurrentProjectsSearchingFilter() {
return listOfProjectTablePanel.builtSearchingFilter();
}
/**
@ -359,7 +358,7 @@ public class GeonaMainTabPanel extends Composite {
*/
public void instanceAndShowListOfProjects() {
GWT.log("instanceAndShowListOfProjects called");
listOfProjectCenterPanel.instanceAndShowListOfProjects(ucdProjectTypesForListingDataView);
listOfProjectTablePanel.instanceAndShowListOfProjects(ucdProjectTypesForListingDataView);
}
/**
@ -371,7 +370,7 @@ public class GeonaMainTabPanel extends Composite {
GWT.log("initMainAccordingToListUseCaseDescriptors: " + listUCDescriptors);
// this.listUCDescriptors = listUCDescriptors;
ddCreateNewProject.clear();
listOfProjectCenterPanel.projectTypeReset();
listOfProjectTablePanel.projectTypeReset();
ucdProjectTypesForListingDataView.clear();
@ -420,12 +419,12 @@ public class GeonaMainTabPanel extends Composite {
public void onClick(ClickEvent event) {
appManagerBus.fireEvent(new GetListOfRecordsEvent(false, ucd.getProfileID(),
getCurrentSearchingFilter(), true));
getCurrentProjectsSearchingFilter(), true));
}
});
ucdProjectTypesForListingDataView.add(ucd);
listOfProjectCenterPanel.addProjectType(link);
listOfProjectTablePanel.addProjectType(link);
}
@ -458,16 +457,27 @@ public class GeonaMainTabPanel extends Composite {
}
}
/**
* Inits the action list panel.
*
* @param ucd the ucd
*/
public void initActionListPanel(UseCaseDescriptorDV ucd) {
GWT.log("Init ActionListPanel for UCD: " + ucd);
listOfProjectNorthPanel.initActionListPanel(ucd);
listOfProjectWorkflowActionsPanel.initActionListPanel(ucd);
}
/**
* Show actions on selected.
*
* @param <T> the generic type
* @param selectItems the select items
*/
public <T> void showActionsOnSelected(List<T> selectItems) {
theDockLayoutPanel.setWidgetHidden(listOfProjectNorthPanel, false);
theDockLayoutPanel.setWidgetHidden(listOfProjectWorkflowActionsPanel, false);
listOfProjectNorthPanel.showActionsOnSelected(selectItems, userRole);
listOfProjectWorkflowActionsPanel.showActionsOnSelected(selectItems, userRole);
if (createRelationProjectsPanel != null && createRelationProjectsPanel.isVisible()) {
createRelationProjectsPanel.selectedProject((ResultDocumentDV) selectItems.get(0));
@ -505,6 +515,12 @@ public class GeonaMainTabPanel extends Composite {
this.pageHeaderDataEntry.setSubtext("New: " + hDV.getItemType());
}
/**
* Show create relation panel.
*
* @param bool the bool
* @param resultDocumentDV the result document DV
*/
public void showCreateRelationPanel(boolean bool, ResultDocumentDV resultDocumentDV) {
detailsPanel.clear();
// theDetailsPanel.setVisible(bool);

View File

@ -12,7 +12,7 @@
}
</ui:style>
<g:HTMLPanel ui:field="actionListBasePanel" addStyleNames="{style.action-panel-style}">
<g:Label>MANAGE</g:Label>
<g:Label>WORKFLOW ACTIONS</g:Label>
<g:HTMLPanel ui:field="actionListContainer"></g:HTMLPanel>
</g:HTMLPanel>
</ui:UiBinder>

View File

@ -9,7 +9,6 @@ import org.gcube.application.geoportalcommon.shared.SearchingFilter;
import org.gcube.application.geoportalcommon.shared.SearchingFilter.LOGICAL_OP;
import org.gcube.application.geoportalcommon.shared.SearchingFilter.ORDER;
import org.gcube.application.geoportalcommon.shared.WhereClause;
import org.gcube.application.geoportalcommon.shared.geoportal.ConfigurationDV;
import org.gcube.application.geoportalcommon.shared.geoportal.config.ItemFieldDV;
import org.gcube.application.geoportalcommon.shared.geoportal.ucd.UseCaseDescriptorDV;
import org.gcube.portlets.user.geoportaldataentry.client.GeoPortalClientCaches.CacheSearchingFilterParametersFromConfig;
@ -38,7 +37,14 @@ import com.google.gwt.user.client.ui.HTMLPanel;
import com.google.gwt.user.client.ui.VerticalPanel;
import com.google.gwt.user.client.ui.Widget;
public class ListOfProjectCenterPanel extends Composite {
/**
* The Class ListOfProjectTablePanel.
*
* @author Francesco Mangiacrapa at ISTI-CNR francesco.mangiacrapa@isti.cnr.it
*
* Sep 21, 2022
*/
public class ListOfProjectTablePanel extends Composite {
@UiField
Dropdown dropdownSortBy;
@ -87,12 +93,24 @@ public class ListOfProjectCenterPanel extends Composite {
private GeonaRecordsPaginatedView grpw;
private static ListOfProjectCenterPanelUiBinder uiBinder = GWT.create(ListOfProjectCenterPanelUiBinder.class);
private static ListOfProjectTablePanelUiBinder uiBinder = GWT.create(ListOfProjectTablePanelUiBinder.class);
interface ListOfProjectCenterPanelUiBinder extends UiBinder<Widget, ListOfProjectCenterPanel> {
/**
* The Interface ListOfProjectTablePanelUiBinder.
*
* @author Francesco Mangiacrapa at ISTI-CNR francesco.mangiacrapa@isti.cnr.it
*
* Sep 21, 2022
*/
interface ListOfProjectTablePanelUiBinder extends UiBinder<Widget, ListOfProjectTablePanel> {
}
public ListOfProjectCenterPanel(HandlerManager appManagerBus) {
/**
* Instantiates a new list of project table panel.
*
* @param appManagerBus the app manager bus
*/
public ListOfProjectTablePanel(HandlerManager appManagerBus) {
initWidget(uiBinder.createAndBindUi(this));
this.appManagerBus = appManagerBus;
@ -111,13 +129,68 @@ public class ListOfProjectCenterPanel extends Composite {
bindEvents();
}
/**
* Bind events.
*/
private void bindEvents() {
buttonReloadProjects.addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
UseCaseDescriptorDV singleUCD = getSelectProjectType();
if (singleUCD != null) {
appManagerBus.fireEvent(new GetListOfRecordsEvent(false, singleUCD.getProfileID(),
getCurrentSearchingFilter(), true));
}
}
});
searchField.addKeyPressHandler(new KeyPressHandler() {
@Override
public void onKeyPress(KeyPressEvent event) {
GWT.log("CHAR CODE: " + event.getCharCode());
if (com.google.gwt.event.dom.client.KeyCodes.KEY_ENTER == event.getCharCode()) {
GWT.log(searchField.getText());
doSearchEvent();
}
}
});
resetSearch.addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
searchField.setText("");
UseCaseDescriptorDV singleUCD = getSelectProjectType();
if (singleUCD != null) {
appManagerBus.fireEvent(new GetListOfRecordsEvent(false, singleUCD.getProfileID(),
getCurrentSearchingFilter(), false));
}
resetSearch.setVisible(false);
// Window.alert("resetSearch MUST BE REVISITED");
/*
* appManagerBus.fireEvent(new GetListOfRecordsEvent(RECORD_TYPE.CONCESSIONE,
* getCurrentSortFilter())); resetSearch.setVisible(false);
*/
}
});
}
/**
* Sets the filtering parameters.
*
* @param sfp the sfp
*/
public void setFilteringParameters(CacheSearchingFilterParametersFromConfig sfp) {
GWT.log("setFilteringParameters instancied");
GWT.log("ListOfProjectTablePanel setFilteringParameters called");
this.cacheSearchingFilterParameters = sfp;
List<ItemFieldDV> sortByFields = sfp.getOrderByFields();
List<ItemFieldDV> searchForFields = sfp.getSearchByFields();
@ -201,8 +274,8 @@ public class ListOfProjectCenterPanel extends Composite {
* @param labelFilter the label filter
* @return the searching filter
*/
public SearchingFilter toSortFilter(String labelFilter) {
GWT.log("toSortFilter for label " + labelFilter);
private SearchingFilter toSortFilter(String labelFilter) {
GWT.log("ListOfProjectTablePanel toSortFilter for label " + labelFilter);
String[] array = labelFilter.split(LABEL_FILTER_SEPARATOR);
GWT.log("label filter: " + array[0]);
@ -230,10 +303,12 @@ public class ListOfProjectCenterPanel extends Composite {
/**
* Dirty solution. I created this one because I had problem on firing click
* event for Tab element
*
*
* @param ucdProjectTypesForListingDataView the ucd project types for listing
* data view
*/
public void instanceAndShowListOfProjects(List<UseCaseDescriptorDV> ucdProjectTypesForListingDataView) {
GWT.log("ListOfProjectCenterPanel.instanceAndShowListOfProjects called");
GWT.log("ListOfProjectTablePanel instanceAndShowListOfProjects called");
this.ucdProjectTypesForListingDataView = ucdProjectTypesForListingDataView;
// If the list of UCDProjectType for listing is not empty.. FIRE THE EVENT OF
// SELECTION on the first item
@ -247,23 +322,23 @@ public class ListOfProjectCenterPanel extends Composite {
}
}
/**
* To list item fields.
*
* @param config the config
* @return the list
*/
private List<ItemFieldDV> toListItemFields(ConfigurationDV<?> config) {
try {
return (List<ItemFieldDV>) config.getConfiguration();
} catch (Exception e) {
GWT.log("Error on casting " + ConfigurationDV.class.getName() + " to List of "
+ ItemFieldDV.class.getName());
}
return null;
}
// /**
// * To list item fields.
// *
// * @param config the config
// * @return the list
// */
// private List<ItemFieldDV> toListItemFields(ConfigurationDV<?> config) {
//
// try {
// return (List<ItemFieldDV>) config.getConfiguration();
// } catch (Exception e) {
// GWT.log("Error on casting " + ConfigurationDV.class.getName() + " to List of "
// + ItemFieldDV.class.getName());
// }
//
// return null;
// }
/**
* Built searching filter.
@ -310,9 +385,7 @@ public class ListOfProjectCenterPanel extends Composite {
*/
public SearchingFilter getCurrentSearchingFilter() {
currentSearchingFilter = builtSearchingFilter();
// currentSearchingFilter.setProjection(cacheSearchingFilterParameters.getProjection());
GWT.log("getCurrentSearchingFilter: " + currentSearchingFilter);
GWT.log("ListOfProjectTablePanel getCurrentSearchingFilter: " + currentSearchingFilter);
return currentSearchingFilter;
}
@ -379,65 +452,18 @@ public class ListOfProjectCenterPanel extends Composite {
}
/**
* Bind events.
* Project type reset.
*/
private void bindEvents() {
buttonReloadProjects.addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
UseCaseDescriptorDV singleUCD = getSelectProjectType();
if (singleUCD != null) {
appManagerBus.fireEvent(new GetListOfRecordsEvent(false, singleUCD.getProfileID(),
getCurrentSearchingFilter(), true));
}
}
});
searchField.addKeyPressHandler(new KeyPressHandler() {
@Override
public void onKeyPress(KeyPressEvent event) {
GWT.log("CHAR CODE: " + event.getCharCode());
if (com.google.gwt.event.dom.client.KeyCodes.KEY_ENTER == event.getCharCode()) {
GWT.log(searchField.getText());
doSearchEvent();
}
}
});
resetSearch.addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
searchField.setText("");
UseCaseDescriptorDV singleUCD = getSelectProjectType();
if (singleUCD != null) {
appManagerBus.fireEvent(new GetListOfRecordsEvent(false, singleUCD.getProfileID(),
getCurrentSearchingFilter(), false));
}
resetSearch.setVisible(false);
// Window.alert("resetSearch MUST BE REVISITED");
/*
* appManagerBus.fireEvent(new GetListOfRecordsEvent(RECORD_TYPE.CONCESSIONE,
* getCurrentSortFilter())); resetSearch.setVisible(false);
*/
}
});
}
public void projectTypeReset() {
ddProjectType.clear();
}
/**
* Adds the project type.
*
* @param link the link
*/
public void addProjectType(NavLink link) {
ddProjectType.add(link);

View File

@ -19,25 +19,50 @@ import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.FlowPanel;
import com.google.gwt.user.client.ui.Widget;
public class ListOfProjectNorthPanel extends Composite {
/**
* The Class ListOfProjectWorkflowActionsPanel.
*
* @author Francesco Mangiacrapa at ISTI-CNR francesco.mangiacrapa@isti.cnr.it
*
* Sep 21, 2022
*/
public class ListOfProjectWorkflowActionsPanel extends Composite {
@UiField
FlowPanel actionListMainPanel;
private ActionListPanel actionListPanel;
private HandlerManager appManagerBus;
private static ListOfProjectNorthPanelUiBinder uiBinder = GWT.create(ListOfProjectNorthPanelUiBinder.class);
private static ListOfProjectWorkflowActionsPanelUiBinder uiBinder = GWT
.create(ListOfProjectWorkflowActionsPanelUiBinder.class);
interface ListOfProjectNorthPanelUiBinder extends UiBinder<Widget, ListOfProjectNorthPanel> {
/**
* The Interface ListOfProjectWorkflowActionsPanelUiBinder.
*
* @author Francesco Mangiacrapa at ISTI-CNR francesco.mangiacrapa@isti.cnr.it
*
* Sep 21, 2022
*/
interface ListOfProjectWorkflowActionsPanelUiBinder extends UiBinder<Widget, ListOfProjectWorkflowActionsPanel> {
}
public ListOfProjectNorthPanel(HandlerManager appManagerBus) {
/**
* Instantiates a new list of project workflow actions panel.
*
* @param appManagerBus the app manager bus
*/
public ListOfProjectWorkflowActionsPanel(HandlerManager appManagerBus) {
initWidget(uiBinder.createAndBindUi(this));
this.appManagerBus = appManagerBus;
}
/**
* Inits the action list panel.
*
* @param ucd the ucd
*/
public void initActionListPanel(UseCaseDescriptorDV ucd) {
GWT.log("Init ActionListPanel for UCD: " + ucd);
@ -58,7 +83,7 @@ public class ListOfProjectNorthPanel extends Composite {
actionListMainPanel.setVisible(false);
}
}
/**
* To list action definition.
*
@ -77,9 +102,16 @@ public class ListOfProjectNorthPanel extends Composite {
return null;
}
/**
* Show actions on selected.
*
* @param <T> the generic type
* @param selectItems the select items
* @param userRole the user role
*/
public <T> void showActionsOnSelected(List<T> selectItems, GcubeUserRole userRole) {
actionListPanel.showActionsOnSelected(selectItems, userRole);
}
}

View File

@ -1,10 +1,8 @@
<!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent">
<ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder"
xmlns:g="urn:import:com.google.gwt.user.client.ui"
xmlns:b="urn:import:com.github.gwtbootstrap.client.ui"
xmlns:m="urn:import:org.gcube.portlets.user.geoportaldataentry.client.ui"
xmlns:r="urn:import:org.gcube.portlets.user.geoportaldataentry.client.ui.utils">
xmlns:b="urn:import:com.github.gwtbootstrap.client.ui">
<ui:style>
.important {
font-weight: bold;