in progress on #23587
This commit is contained in:
parent
b7836b33ae
commit
71e26af6dd
|
@ -387,7 +387,7 @@ public class GeoPortalDataEntryApp implements EntryPoint {
|
||||||
|
|
||||||
if (cardsPerIT != null) {
|
if (cardsPerIT != null) {
|
||||||
orderedCards.addAll(cardsPerIT);
|
orderedCards.addAll(cardsPerIT);
|
||||||
buildNewCards(profileID, orderedCards);
|
buildNewCards(profileID, handlerDeclarationDV.getItemType(), orderedCards);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -443,7 +443,7 @@ public class GeoPortalDataEntryApp implements EntryPoint {
|
||||||
orderedCards.addAll(gnaCardsModels);
|
orderedCards.addAll(gnaCardsModels);
|
||||||
mapGcubeProfilePerItemType.put(handlerDeclarationDV.getItemType(),
|
mapGcubeProfilePerItemType.put(handlerDeclarationDV.getItemType(),
|
||||||
new ArrayList<GeoNaFormCardModel>(orderedCards));
|
new ArrayList<GeoNaFormCardModel>(orderedCards));
|
||||||
buildNewCards(profileID, orderedCards);
|
buildNewCards(profileID, handlerDeclarationDV.getItemType(), orderedCards);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -487,7 +487,7 @@ public class GeoPortalDataEntryApp implements EntryPoint {
|
||||||
return geoNaFormCardModel;
|
return geoNaFormCardModel;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void buildNewCards(String profileID, Collection<GeoNaFormCardModel> orderedCards) {
|
private void buildNewCards(String profileID, String itemTypeTitle, Collection<GeoNaFormCardModel> orderedCards) {
|
||||||
projectSavedWithSuccess = false; // resetting state of saving
|
projectSavedWithSuccess = false; // resetting state of saving
|
||||||
mainTabPanel.setLoaderVisible("Loading...", true);
|
mainTabPanel.setLoaderVisible("Loading...", true);
|
||||||
geoNaMainForm.setVisibleFormActions(true);
|
geoNaMainForm.setVisibleFormActions(true);
|
||||||
|
@ -516,13 +516,13 @@ public class GeoPortalDataEntryApp implements EntryPoint {
|
||||||
geoNaMainForm.enableButtonSave(true);
|
geoNaMainForm.enableButtonSave(true);
|
||||||
mainTabPanel.setLoaderVisible("", false);
|
mainTabPanel.setLoaderVisible("", false);
|
||||||
|
|
||||||
TreeItemPanel tip = new TreeItemPanel(profileID, orderedCards, appManagerBus);
|
TreeItemPanel tip = new TreeItemPanel(profileID, itemTypeTitle, orderedCards, appManagerBus);
|
||||||
geoNaMainForm.addTree(tip);
|
geoNaMainForm.addTree(tip);
|
||||||
// RootPanel.get(GeoPortalDataEntryApp.DIV_PORTLET_ID).add(tip.getTree());
|
// RootPanel.get(GeoPortalDataEntryApp.DIV_PORTLET_ID).add(tip.getTree());
|
||||||
}
|
}
|
||||||
|
|
||||||
private void resetUI() {
|
private void resetUI() {
|
||||||
geoNaMainForm.reset();
|
geoNaMainForm.resetUI();
|
||||||
mapForms.clear();
|
mapForms.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -680,52 +680,71 @@ public class GeoPortalDataEntryApp implements EntryPoint {
|
||||||
@Override
|
@Override
|
||||||
public void onTreeItemEvent(TreeItemEvent treeItemEvent) {
|
public void onTreeItemEvent(TreeItemEvent treeItemEvent) {
|
||||||
|
|
||||||
NodeItem selectedNode = treeItemEvent.getSelectItem();
|
TreeItem selectedItem = treeItemEvent.getSelectItem();
|
||||||
if (selectedNode == null) {
|
NodeItem selectedNode = treeItemEvent.selectedAsNodeItem();
|
||||||
TreeItem selectedItem = geoNaMainForm.getTreeItemPanel().getSelectItem();
|
|
||||||
|
if (selectedItem == null) {
|
||||||
if(selectedItem==null)
|
selectedItem = geoNaMainForm.getTreeItemPanel().getSelectItem();
|
||||||
|
|
||||||
|
if (selectedItem == null)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
selectedNode = (NodeItem) selectedItem.getWidget();
|
selectedNode = (NodeItem) selectedItem.getWidget();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
GeoNaFormCardModel nodeCard = selectedNode.getGeoNaFormCardModel();
|
GeoNaFormCardModel nodeCard = selectedNode.getGeoNaFormCardModel();
|
||||||
|
|
||||||
|
|
||||||
switch (treeItemEvent.getActionPerformed()) {
|
switch (treeItemEvent.getActionPerformed()) {
|
||||||
case SELECTED:
|
case SELECTED: {
|
||||||
geoNaMainForm.enableButtonRemoveSection(false);
|
geoNaMainForm.enableButtonRemoveSection(false);
|
||||||
geoNaMainForm.enableButtonDuplicateSection(false);
|
geoNaMainForm.enableButtonDuplicateSection(false);
|
||||||
geoNaMainForm.setSelectedForm(nodeCard.getMetadataForm());
|
geoNaMainForm.setSelectedForm(nodeCard.getMetadataForm());
|
||||||
int nodeCount = geoNaMainForm.getTreeItemPanel().countNodeForFullPath(selectedNode.getJsonSectionFullPath());
|
|
||||||
|
// if(nodeCount>1) {
|
||||||
if(nodeCount>1) {
|
// geoNaMainForm.enableButtonRemoveSection(true);
|
||||||
geoNaMainForm.enableButtonRemoveSection(true);
|
// }
|
||||||
}
|
//
|
||||||
|
if (nodeCard.getFormCard().isInternalRepeatibleForm()) {
|
||||||
if(nodeCard.getFormCard().isInternalRepeatibleForm()) {
|
|
||||||
geoNaMainForm.enableButtonDuplicateSection(true);
|
geoNaMainForm.enableButtonDuplicateSection(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (selectedNode.isCanBeDeleted()) {
|
||||||
break;
|
geoNaMainForm.enableButtonRemoveSection(true);
|
||||||
case DELETE:
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
}
|
||||||
|
case DELETE: {
|
||||||
|
|
||||||
|
geoNaMainForm.getTreeItemPanel().removeChild(selectedItem.getParentItem(), selectedItem, selectedNode.getJsonSectionFullPath());
|
||||||
|
geoNaMainForm.resetInputPanel();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
case DUPLICATE:
|
case DUPLICATE: {
|
||||||
|
|
||||||
GWT.log("DUPLICATE node: " + selectedNode);
|
GWT.log("DUPLICATE node: " + selectedNode);
|
||||||
|
|
||||||
|
int nodeCountPerJSONFullPAth = geoNaMainForm.getTreeItemPanel()
|
||||||
|
.countNodeForFullPath(selectedNode.getJsonSectionFullPath());
|
||||||
|
|
||||||
|
if (nodeCountPerJSONFullPAth >= nodeCard.getFormCard().getMaxFormRepeatability()) {
|
||||||
|
|
||||||
|
DialogInform di = new DialogInform(new Image(Images.ICONS.accessDenied()), "Maximun reached",
|
||||||
|
"Maximun number of data reached for " + nodeCard.getFormCard().getTitle());
|
||||||
|
di.center();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
GeoNaFormCardModel newNodeFormCard = buildNewFormCardModelFromProfile(nodeCard.getGcubeProfile(),
|
GeoNaFormCardModel newNodeFormCard = buildNewFormCardModelFromProfile(nodeCard.getGcubeProfile(),
|
||||||
-1, nodeCard.getMetadataProfileBean(), OPERATION.UPDATE);
|
-1, nodeCard.getMetadataProfileBean(), OPERATION.UPDATE);
|
||||||
|
|
||||||
geoNaMainForm.getTreeItemPanel().addChild(selectedNode.getParentTreeItem(), newNodeFormCard, true,
|
boolean canBeDuplicated = newNodeFormCard.getFormCard().isInternalRepeatibleForm();
|
||||||
selectedNode.getJsonSectionFullPath());
|
geoNaMainForm.getTreeItemPanel().addChild(selectedNode.getParentTreeItem(), newNodeFormCard,
|
||||||
|
canBeDuplicated, true, selectedNode.getJsonSectionFullPath());
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -1,10 +1,9 @@
|
||||||
package org.gcube.portlets.user.geoportaldataentry.client.events;
|
package org.gcube.portlets.user.geoportaldataentry.client.events;
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import org.gcube.portlets.user.geoportaldataentry.client.ui.tree.NodeItem;
|
import org.gcube.portlets.user.geoportaldataentry.client.ui.tree.NodeItem;
|
||||||
|
|
||||||
import com.google.gwt.event.shared.GwtEvent;
|
import com.google.gwt.event.shared.GwtEvent;
|
||||||
|
import com.google.gwt.user.client.ui.TreeItem;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -17,7 +16,7 @@ import com.google.gwt.event.shared.GwtEvent;
|
||||||
*/
|
*/
|
||||||
public class TreeItemEvent extends GwtEvent<TreeItemEventHandler> {
|
public class TreeItemEvent extends GwtEvent<TreeItemEventHandler> {
|
||||||
public static Type<TreeItemEventHandler> TYPE = new Type<TreeItemEventHandler>();
|
public static Type<TreeItemEventHandler> TYPE = new Type<TreeItemEventHandler>();
|
||||||
private NodeItem selectItem;
|
private TreeItem treeItem;
|
||||||
private ACTION actionPerformed;
|
private ACTION actionPerformed;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -37,8 +36,8 @@ public class TreeItemEvent extends GwtEvent<TreeItemEventHandler> {
|
||||||
* @param selectItems the select items
|
* @param selectItems the select items
|
||||||
* @param action the action
|
* @param action the action
|
||||||
*/
|
*/
|
||||||
public TreeItemEvent(NodeItem selectItem, ACTION action) {
|
public TreeItemEvent(TreeItem treeItem, ACTION action) {
|
||||||
this.selectItem = selectItem;
|
this.treeItem = treeItem;
|
||||||
this.actionPerformed = action;
|
this.actionPerformed = action;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -79,8 +78,16 @@ public class TreeItemEvent extends GwtEvent<TreeItemEventHandler> {
|
||||||
*
|
*
|
||||||
* @return the select items
|
* @return the select items
|
||||||
*/
|
*/
|
||||||
public NodeItem getSelectItem() {
|
public TreeItem getSelectItem() {
|
||||||
return selectItem;
|
return treeItem;
|
||||||
|
}
|
||||||
|
|
||||||
|
public NodeItem selectedAsNodeItem(){
|
||||||
|
if(treeItem!=null) {
|
||||||
|
return (NodeItem) treeItem.getWidget();
|
||||||
|
}
|
||||||
|
|
||||||
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -189,7 +189,7 @@ public class GeonaMainTabPanel extends Composite {
|
||||||
alertSearchFor.setText(searchForFields.get(0).getDisplayName());
|
alertSearchFor.setText(searchForFields.get(0).getDisplayName());
|
||||||
alertSortBy.setText(toLabelFilter((initialSortFilter.getOrderByFields().get(0)), initialSortFilter.getOrder()));
|
alertSortBy.setText(toLabelFilter((initialSortFilter.getOrderByFields().get(0)), initialSortFilter.getOrder()));
|
||||||
|
|
||||||
pageHeaderDataEntry.setHeight("25px");
|
//pageHeaderDataEntry.setHeight("25px");
|
||||||
bindEvents();
|
bindEvents();
|
||||||
resetSearch.setIconSize(IconSize.TWO_TIMES);
|
resetSearch.setIconSize(IconSize.TWO_TIMES);
|
||||||
resetSearch.setType(ButtonType.LINK);
|
resetSearch.setType(ButtonType.LINK);
|
||||||
|
|
|
@ -52,6 +52,18 @@
|
||||||
padding-top: 6px;
|
padding-top: 6px;
|
||||||
margin-top: 2px;
|
margin-top: 2px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.sub-page-header {
|
||||||
|
height: 25px;
|
||||||
|
margin: 0 !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sub-page-header h1 {
|
||||||
|
}
|
||||||
|
|
||||||
|
.sub-page-header small {
|
||||||
|
font-size: 18px;
|
||||||
|
}
|
||||||
</ui:style>
|
</ui:style>
|
||||||
<g:HTMLPanel>
|
<g:HTMLPanel>
|
||||||
<b:PageHeader subtext="data entry facility"
|
<b:PageHeader subtext="data entry facility"
|
||||||
|
@ -83,7 +95,9 @@
|
||||||
<b:Paragraph>select "Create New Project"</b:Paragraph>
|
<b:Paragraph>select "Create New Project"</b:Paragraph>
|
||||||
</b:Hero>
|
</b:Hero>
|
||||||
<b:PageHeader subtext=" "
|
<b:PageHeader subtext=" "
|
||||||
ui:field="pageHeaderDataEntry" visible="false"> </b:PageHeader>
|
ui:field="pageHeaderDataEntry"
|
||||||
|
addStyleNames="{style.sub-page-header}" visible="false">
|
||||||
|
</b:PageHeader>
|
||||||
</g:HTMLPanel>
|
</g:HTMLPanel>
|
||||||
|
|
||||||
<r:LoaderIcon ui:field="loader"></r:LoaderIcon>
|
<r:LoaderIcon ui:field="loader"></r:LoaderIcon>
|
||||||
|
|
|
@ -69,8 +69,8 @@ public class GeonaDataEntryMainForm extends Composite {
|
||||||
@UiField
|
@UiField
|
||||||
ScrollPanel inputPanel;
|
ScrollPanel inputPanel;
|
||||||
|
|
||||||
@UiField
|
// @UiField
|
||||||
TabPanel mainTabPanel;
|
// TabPanel mainTabPanel;
|
||||||
|
|
||||||
@UiField
|
@UiField
|
||||||
AlertBlock alertFormAction;
|
AlertBlock alertFormAction;
|
||||||
|
@ -89,7 +89,7 @@ public class GeonaDataEntryMainForm extends Composite {
|
||||||
|
|
||||||
private LinkedHashMap<String, MetadataFormCard> mapForms = new LinkedHashMap<String, MetadataFormCard>();
|
private LinkedHashMap<String, MetadataFormCard> mapForms = new LinkedHashMap<String, MetadataFormCard>();
|
||||||
|
|
||||||
private List<Tab> listTabs = new ArrayList<Tab>();
|
//private List<Tab> listTabs = new ArrayList<Tab>();
|
||||||
|
|
||||||
private HandlerManager appManagerBus;
|
private HandlerManager appManagerBus;
|
||||||
|
|
||||||
|
@ -168,55 +168,63 @@ public class GeonaDataEntryMainForm extends Composite {
|
||||||
// createNewCard(profileID, tabHeading, geonFormModel);
|
// createNewCard(profileID, tabHeading, geonFormModel);
|
||||||
// }
|
// }
|
||||||
|
|
||||||
/**
|
// /**
|
||||||
* Creates the new card.
|
// * Creates the new card.
|
||||||
*
|
// *
|
||||||
* @param profileID the profile ID
|
// * @param profileID the profile ID
|
||||||
* @param tabHeading the tab heading
|
// * @param tabHeading the tab heading
|
||||||
* @param geonFormModel the geon form model
|
// * @param geonFormModel the geon form model
|
||||||
*/
|
// */
|
||||||
private void createNewCard(String profileID, String tabHeading, final GeoNaFormCardModel geonFormModel) {
|
// private void createNewCard(String profileID, String tabHeading, final GeoNaFormCardModel geonFormModel) {
|
||||||
final Tab tab = new Tab();
|
// final Tab tab = new Tab();
|
||||||
tab.setHeading(tabHeading);
|
// tab.setHeading(tabHeading);
|
||||||
// MetadataFormCard mfc = new MetadataFormCard(tab, createMetadataForm,
|
// // MetadataFormCard mfc = new MetadataFormCard(tab, createMetadataForm,
|
||||||
// repeatible);
|
// // repeatible);
|
||||||
MetadataFormCard mfc = new MetadataFormCard(tab, geonFormModel, appManagerBus);
|
// MetadataFormCard mfc = new MetadataFormCard(tab, geonFormModel, appManagerBus);
|
||||||
listTabs.add(tab);
|
// listTabs.add(tab);
|
||||||
mainTabPanel.add(tab);
|
// mainTabPanel.add(tab);
|
||||||
|
//
|
||||||
if (listTabs.size() == 1) {
|
// if (listTabs.size() == 1) {
|
||||||
tab.setActive(true);
|
// tab.setActive(true);
|
||||||
mainTabPanel.selectTab(0);
|
// mainTabPanel.selectTab(0);
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
mapForms.put(tabHeading, mfc);
|
// mapForms.put(tabHeading, mfc);
|
||||||
}
|
// }
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Reset.
|
* Reset.
|
||||||
*/
|
*/
|
||||||
public void reset() {
|
public void resetUI() {
|
||||||
navbarTree.setVisible(false);
|
navbarTree.setVisible(false);
|
||||||
mapForms.clear();
|
mapForms.clear();
|
||||||
mainTabPanel.clear();
|
//mainTabPanel.clear();
|
||||||
listTabs.clear();
|
inputPanel.clear();
|
||||||
|
//listTabs.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Select tab.
|
* Reset.
|
||||||
*
|
|
||||||
* @param index the index
|
|
||||||
*/
|
*/
|
||||||
public void selectTab(int index) {
|
public void resetInputPanel() {
|
||||||
|
inputPanel.clear();
|
||||||
GWT.log("Selecting tab index: " + index + " of " + listTabs.size());
|
|
||||||
|
|
||||||
if (listTabs.size() < index) {
|
|
||||||
mainTabPanel.selectTab(index);
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// /**
|
||||||
|
// * Select tab.
|
||||||
|
// *
|
||||||
|
// * @param index the index
|
||||||
|
// */
|
||||||
|
// public void selectTab(int index) {
|
||||||
|
//
|
||||||
|
// GWT.log("Selecting tab index: " + index + " of " + listTabs.size());
|
||||||
|
//
|
||||||
|
// if (listTabs.size() < index) {
|
||||||
|
// mainTabPanel.selectTab(index);
|
||||||
|
//
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Save data.
|
* Save data.
|
||||||
*
|
*
|
||||||
|
|
|
@ -51,8 +51,8 @@
|
||||||
<g:ScrollPanel ui:field="inputPanel"
|
<g:ScrollPanel ui:field="inputPanel"
|
||||||
addStyleNames="{style.w80}"></g:ScrollPanel>
|
addStyleNames="{style.w80}"></g:ScrollPanel>
|
||||||
</g:HTMLPanel>
|
</g:HTMLPanel>
|
||||||
<b:TabPanel ui:field="mainTabPanel" tabPosition="left">
|
<!-- <b:TabPanel ui:field="mainTabPanel" tabPosition="left">
|
||||||
</b:TabPanel>
|
</b:TabPanel> -->
|
||||||
<b:AlertBlock type="DEFAULT" visible="false"
|
<b:AlertBlock type="DEFAULT" visible="false"
|
||||||
close="false" ui:field="alertFormAction"></b:AlertBlock>
|
close="false" ui:field="alertFormAction"></b:AlertBlock>
|
||||||
<b:FormActions ui:field="formActions" visible="false">
|
<b:FormActions ui:field="formActions" visible="false">
|
||||||
|
|
|
@ -36,58 +36,25 @@ public class NodeItem extends Composite {
|
||||||
|
|
||||||
private String jsonSectionFullPath;
|
private String jsonSectionFullPath;
|
||||||
|
|
||||||
// public NodeItem(TreeItem parent, GcubeProfileDV profile, CreateMetadataForm baseForm, Integer minOccurs,
|
private boolean canBeDuplicated;
|
||||||
// Integer maxOccurs, boolean canBeDuplicated, boolean canBeDeleted) {
|
|
||||||
// initWidget(uiBinder.createAndBindUi(this));
|
|
||||||
// this.profile = profile;
|
|
||||||
// this.baseForm = baseForm;
|
|
||||||
// htmlNode.setHTML(profile.getSectionTitle());
|
|
||||||
// buttonAdd.setVisible(false);
|
|
||||||
// buttonRemove.setVisible(false);
|
|
||||||
//
|
|
||||||
// if (canBeDuplicated) {
|
|
||||||
// buttonAdd.setIcon(IconType.COPY);
|
|
||||||
// buttonAdd.getElement().getStyle().setProperty("pointerEvents", "none");
|
|
||||||
// buttonAdd.getElement().getStyle().setProperty("textDecoration", "none");
|
|
||||||
// buttonAdd.getElement().getStyle().setColor("#555");
|
|
||||||
// buttonAdd.setVisible(true);
|
|
||||||
//
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// if (canBeDeleted) {
|
|
||||||
// buttonRemove.setIcon(IconType.TRASH);
|
|
||||||
// buttonRemove.getElement().getStyle().setProperty("pointerEvents", "none");
|
|
||||||
// buttonRemove.getElement().getStyle().setProperty("textDecoration", "none");
|
|
||||||
// buttonRemove.getElement().getStyle().setColor("#555");
|
|
||||||
// buttonRemove.setVisible(true);
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// htmlNode.addClickHandler(new ClickHandler() {
|
|
||||||
//
|
|
||||||
// @Override
|
|
||||||
// public void onClick(ClickEvent event) {
|
|
||||||
// // TODO Auto-generated method stub
|
|
||||||
//
|
|
||||||
// }
|
|
||||||
// });
|
|
||||||
//
|
|
||||||
// }
|
|
||||||
|
|
||||||
public NodeItem(TreeItem parent, GeoNaFormCardModel geoNaFormCardModel, boolean canBeDeleted,
|
private boolean canBeDeleted;
|
||||||
String jsonSectionFullPath) {
|
|
||||||
|
public NodeItem(TreeItem parent, GeoNaFormCardModel geoNaFormCardModel, boolean canBeDuplicated,
|
||||||
|
boolean canBeDeleted, String jsonSectionFullPath) {
|
||||||
initWidget(uiBinder.createAndBindUi(this));
|
initWidget(uiBinder.createAndBindUi(this));
|
||||||
this.geoNaFormCardModel = geoNaFormCardModel;
|
this.geoNaFormCardModel = geoNaFormCardModel;
|
||||||
this.parentTreeItem = parent;
|
this.parentTreeItem = parent;
|
||||||
this.jsonSectionFullPath = jsonSectionFullPath;
|
this.jsonSectionFullPath = jsonSectionFullPath;
|
||||||
|
this.canBeDuplicated = canBeDuplicated;
|
||||||
|
this.canBeDeleted = canBeDeleted;
|
||||||
htmlNode.setHTML(geoNaFormCardModel.getGcubeProfile().getSectionTitle());
|
htmlNode.setHTML(geoNaFormCardModel.getGcubeProfile().getSectionTitle());
|
||||||
buttonAdd.setVisible(false);
|
buttonAdd.setVisible(false);
|
||||||
buttonRemove.setVisible(false);
|
buttonRemove.setVisible(false);
|
||||||
|
|
||||||
boolean canBeDuplicated = geoNaFormCardModel.getFormCard().isInternalRepeatibleForm();
|
|
||||||
|
|
||||||
if (canBeDuplicated) {
|
if (canBeDuplicated) {
|
||||||
buttonAdd.setIcon(IconType.COPY);
|
buttonAdd.setIcon(IconType.COPY);
|
||||||
buttonAdd.getElement().getStyle().setProperty("pointerEvents", "none");
|
//buttonAdd.getElement().getStyle().setProperty("pointerEvents", "none");
|
||||||
buttonAdd.getElement().getStyle().setProperty("textDecoration", "none");
|
buttonAdd.getElement().getStyle().setProperty("textDecoration", "none");
|
||||||
buttonAdd.getElement().getStyle().setColor("#555");
|
buttonAdd.getElement().getStyle().setColor("#555");
|
||||||
buttonAdd.setVisible(true);
|
buttonAdd.setVisible(true);
|
||||||
|
@ -96,7 +63,7 @@ public class NodeItem extends Composite {
|
||||||
|
|
||||||
if (canBeDeleted) {
|
if (canBeDeleted) {
|
||||||
buttonRemove.setIcon(IconType.TRASH);
|
buttonRemove.setIcon(IconType.TRASH);
|
||||||
buttonRemove.getElement().getStyle().setProperty("pointerEvents", "none");
|
//buttonRemove.getElement().getStyle().setProperty("pointerEvents", "none");
|
||||||
buttonRemove.getElement().getStyle().setProperty("textDecoration", "none");
|
buttonRemove.getElement().getStyle().setProperty("textDecoration", "none");
|
||||||
buttonRemove.getElement().getStyle().setColor("#555");
|
buttonRemove.getElement().getStyle().setColor("#555");
|
||||||
buttonRemove.setVisible(true);
|
buttonRemove.setVisible(true);
|
||||||
|
@ -130,4 +97,12 @@ public class NodeItem extends Composite {
|
||||||
return jsonSectionFullPath;
|
return jsonSectionFullPath;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean isCanBeDeleted() {
|
||||||
|
return canBeDeleted;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isCanBeDuplicated() {
|
||||||
|
return canBeDuplicated;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -24,13 +24,18 @@ public class TreeItemPanel {
|
||||||
private Tree tree = new Tree();
|
private Tree tree = new Tree();
|
||||||
private HandlerManager appManagerBus;
|
private HandlerManager appManagerBus;
|
||||||
private HashMap<String, List<TreeItem>> treeItemParents = new HashMap<String, List<TreeItem>>();
|
private HashMap<String, List<TreeItem>> treeItemParents = new HashMap<String, List<TreeItem>>();
|
||||||
|
private String itemTypeTitle;
|
||||||
|
private String profileID;
|
||||||
|
|
||||||
// Create a tree with a few items in it.
|
// Create a tree with a few items in it.
|
||||||
public TreeItemPanel(String itemType, Collection<GeoNaFormCardModel> gnaCardsModels, HandlerManager appManagerBus) {
|
public TreeItemPanel(String profileID, String itemTypeTitle, Collection<GeoNaFormCardModel> gnaCardsModels,
|
||||||
|
HandlerManager appManagerBus) {
|
||||||
this.appManagerBus = appManagerBus;
|
this.appManagerBus = appManagerBus;
|
||||||
|
this.itemTypeTitle = itemTypeTitle;
|
||||||
|
this.profileID = profileID;
|
||||||
|
|
||||||
TreeItem root = new TreeItem();
|
TreeItem root = new TreeItem();
|
||||||
root.setHTML(itemType);
|
root.setHTML(itemTypeTitle);
|
||||||
|
|
||||||
// TreeMap<String, List<TreeItem>> mapParentSections = new TreeMap<String,
|
// TreeMap<String, List<TreeItem>> mapParentSections = new TreeMap<String,
|
||||||
// List<TreeItem>>();
|
// List<TreeItem>>();
|
||||||
|
@ -64,7 +69,7 @@ public class TreeItemPanel {
|
||||||
GcubeProfileDV profile = geoNaFormCardModel.getGcubeProfile();
|
GcubeProfileDV profile = geoNaFormCardModel.getGcubeProfile();
|
||||||
String parentName = profile.getParentName();
|
String parentName = profile.getParentName();
|
||||||
String jsonSectionFullPath = getJSONFullPathFromProfile(profile);
|
String jsonSectionFullPath = getJSONFullPathFromProfile(profile);
|
||||||
|
|
||||||
if (parentName == null || parentName.isEmpty()) {
|
if (parentName == null || parentName.isEmpty()) {
|
||||||
parentName = JSON_ROOT_PATH;
|
parentName = JSON_ROOT_PATH;
|
||||||
}
|
}
|
||||||
|
@ -74,8 +79,10 @@ public class TreeItemPanel {
|
||||||
GWT.log("tree jsonSection: " + jsonSectionFullPath + " parent " + parentName + " name: "
|
GWT.log("tree jsonSection: " + jsonSectionFullPath + " parent " + parentName + " name: "
|
||||||
+ profile.getSectionName() + " title: " + profile.getSectionTitle());
|
+ profile.getSectionName() + " title: " + profile.getSectionTitle());
|
||||||
|
|
||||||
TreeItem child = addChild(listParent.get(0), geoNaFormCardModel, false, jsonSectionFullPath);
|
boolean canBeDuplicated = geoNaFormCardModel.getFormCard().isInternalRepeatibleForm();
|
||||||
|
TreeItem child = addChild(listParent.get(0), geoNaFormCardModel, canBeDuplicated, false,
|
||||||
|
jsonSectionFullPath);
|
||||||
|
|
||||||
}
|
}
|
||||||
tree.addItem(root);
|
tree.addItem(root);
|
||||||
|
|
||||||
|
@ -83,10 +90,12 @@ public class TreeItemPanel {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onSelection(SelectionEvent<TreeItem> event) {
|
public void onSelection(SelectionEvent<TreeItem> event) {
|
||||||
NodeItem nodeItem = (NodeItem) event.getSelectedItem().getWidget();
|
TreeItem treeItem = event.getSelectedItem();
|
||||||
|
|
||||||
|
NodeItem nodeItem = (NodeItem) treeItem.getWidget();
|
||||||
|
|
||||||
GWT.log("Selected: " + nodeItem.getGeoNaFormCardModel().getGcubeProfile());
|
GWT.log("Selected: " + nodeItem.getGeoNaFormCardModel().getGcubeProfile());
|
||||||
appManagerBus.fireEvent(new TreeItemEvent(nodeItem, ACTION.SELECTED));
|
appManagerBus.fireEvent(new TreeItemEvent(treeItem, ACTION.SELECTED));
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -113,34 +122,48 @@ public class TreeItemPanel {
|
||||||
return jsonSectionFullPath;
|
return jsonSectionFullPath;
|
||||||
}
|
}
|
||||||
|
|
||||||
public TreeItem addChild(TreeItem parent, GeoNaFormCardModel geoNaFormCardModel, boolean canBeDeleted, String jsonSectionFullPath) {
|
public TreeItem addChild(TreeItem parent, GeoNaFormCardModel geoNaFormCardModel, boolean canBeDuplicated,
|
||||||
|
boolean canBeDeleted, String jsonSectionFullPath) {
|
||||||
GWT.log("Adding child to parent: " + parent.getText());
|
GWT.log("Adding child to parent: " + parent.getText());
|
||||||
TreeItem child = new TreeItem(new NodeItem(parent, geoNaFormCardModel, canBeDeleted, jsonSectionFullPath));
|
TreeItem child = new TreeItem(
|
||||||
|
new NodeItem(parent, geoNaFormCardModel, canBeDuplicated, canBeDeleted, jsonSectionFullPath));
|
||||||
parent.addItem(child);
|
parent.addItem(child);
|
||||||
|
|
||||||
// if the path section is not the root
|
// if the path section is not the root
|
||||||
if (jsonSectionFullPath.compareTo(JSON_ROOT_PATH) != 0) {
|
if (jsonSectionFullPath.compareTo(JSON_ROOT_PATH) != 0) {
|
||||||
|
|
||||||
List<TreeItem> listNodeParents = treeItemParents.get(jsonSectionFullPath);
|
List<TreeItem> listNodeParents = treeItemParents.get(jsonSectionFullPath);
|
||||||
|
|
||||||
if(listNodeParents==null) {
|
if (listNodeParents == null) {
|
||||||
listNodeParents = new ArrayList<TreeItem>();
|
listNodeParents = new ArrayList<TreeItem>();
|
||||||
}
|
}
|
||||||
|
|
||||||
listNodeParents.add(child);
|
listNodeParents.add(child);
|
||||||
|
|
||||||
treeItemParents.put(jsonSectionFullPath, listNodeParents);
|
treeItemParents.put(jsonSectionFullPath, listNodeParents);
|
||||||
}
|
}
|
||||||
|
|
||||||
return child;
|
return child;
|
||||||
}
|
}
|
||||||
|
|
||||||
public int countNodeForFullPath(String jsonSectionFullPath){
|
public void removeChild(TreeItem parent, TreeItem item, String jsonSectionFullPath) {
|
||||||
|
GWT.log("Removing child to parent: " + parent.getText());
|
||||||
List<TreeItem> nodes = treeItemParents.get(jsonSectionFullPath);
|
List<TreeItem> nodes = treeItemParents.get(jsonSectionFullPath);
|
||||||
|
|
||||||
if(nodes != null)
|
if (nodes != null) {
|
||||||
|
nodes.remove(item);
|
||||||
|
treeItemParents.put(jsonSectionFullPath, nodes);
|
||||||
|
}
|
||||||
|
|
||||||
|
parent.removeItem(item);
|
||||||
|
}
|
||||||
|
|
||||||
|
public int countNodeForFullPath(String jsonSectionFullPath) {
|
||||||
|
List<TreeItem> nodes = treeItemParents.get(jsonSectionFullPath);
|
||||||
|
|
||||||
|
if (nodes != null)
|
||||||
return nodes.size();
|
return nodes.size();
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -151,10 +174,9 @@ public class TreeItemPanel {
|
||||||
public TreeItem getSelectItem() {
|
public TreeItem getSelectItem() {
|
||||||
return tree.getSelectedItem();
|
return tree.getSelectedItem();
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getNodeIndex(TreeItem parent,TreeItem item){
|
public int getNodeIndex(TreeItem parent, TreeItem item) {
|
||||||
return parent.getChildIndex(item);
|
return parent.getChildIndex(item);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue