in progress
This commit is contained in:
parent
935e0035f1
commit
22713ca924
|
@ -143,6 +143,8 @@ public class GeoPortalDataEntryApp implements EntryPoint {
|
|||
|
||||
private boolean dataEntryProjectCreated = false;
|
||||
|
||||
private TreeItemPanel treeItemPanel;
|
||||
|
||||
/**
|
||||
* This is the entry point method.
|
||||
*/
|
||||
|
@ -417,18 +419,6 @@ public class GeoPortalDataEntryApp implements EntryPoint {
|
|||
String theMetaType = metaDataProfileBean.getType().toLowerCase();
|
||||
GWT.log("Building form card for type: " + theMetaType);
|
||||
|
||||
// // Managing Forms repeatability
|
||||
// int minOccurs = gcubeProfiles.getMinOccurs();
|
||||
// minOccurs = minOccurs <= 0 ? 0 : minOccurs;
|
||||
// int maxOccurs = gcubeProfiles.getMaxOccurs();
|
||||
// maxOccurs = maxOccurs <= 0 ? Integer.MAX_VALUE : maxOccurs;
|
||||
//
|
||||
// // TODO MUST BE MANAGED MIN_OCCURS
|
||||
// ProjectFormCard cct = new ProjectFormCard(gcubeProfiles.getSectionName(),
|
||||
// gcubeProfiles.getSectionTitle(), order, maxOccurs > 1, minOccurs, maxOccurs);
|
||||
// GeoNaFormCardModel geonaForm = new GeoNaFormCardModel(metaDataProfileBean, null, cct,
|
||||
// gcubeProfiles);
|
||||
|
||||
GeoNaFormCardModel geonaForm = buildNewFormCardModelFromProfile(gcubeProfile, order,
|
||||
metaDataProfileBean, OPERATION.UPDATE);
|
||||
|
||||
|
@ -468,6 +458,7 @@ public class GeoPortalDataEntryApp implements EntryPoint {
|
|||
*/
|
||||
private GeoNaFormCardModel buildNewFormCardModelFromProfile(GcubeProfileDV gcubeProfile, int order,
|
||||
MetaDataProfileBean metaDataProfileBean, OPERATION operation) {
|
||||
|
||||
// Managing Forms repeatability
|
||||
int minOccurs = gcubeProfile.getMinOccurs();
|
||||
minOccurs = minOccurs <= 0 ? 0 : minOccurs;
|
||||
|
@ -488,37 +479,16 @@ public class GeoPortalDataEntryApp implements EntryPoint {
|
|||
}
|
||||
|
||||
private void buildNewCards(String profileID, String itemTypeTitle, Collection<GeoNaFormCardModel> orderedCards) {
|
||||
|
||||
projectSavedWithSuccess = false; // resetting state of saving
|
||||
mainTabPanel.setLoaderVisible("Loading...", true);
|
||||
geoNaMainForm.setVisibleFormActions(true);
|
||||
resetUI();
|
||||
// ordered values
|
||||
// for (GeoNaFormCardModel geonaForm : orderedCards) {
|
||||
//
|
||||
// // TODO TO TEST
|
||||
// // if(geonaForm.getFormCardTitle().equals(ProjectFormCard.IMMAGINI_RAPPRESENTATIVE)){
|
||||
//
|
||||
// GWT.log("Adding card: " + geonaForm.getFormCard());
|
||||
// CreateMetadataForm baseForm = new CreateMetadataForm(Arrays.asList(geonaForm.getMetadataProfileBean()),
|
||||
// appManagerBus, operation);
|
||||
// geonaForm.setMetadataForm(baseForm);
|
||||
// String key = geonaForm.getMetadataProfileBean().getType();
|
||||
// if (geonaForm.getFormCard() != null) {
|
||||
// key = geonaForm.getFormCard().getTitle();
|
||||
// }
|
||||
// // profileID is unique for all the cards/forms
|
||||
// geoNaMainForm.addForm(profileID, key, geonaForm);
|
||||
// mapForms.put(key, geonaForm);
|
||||
//
|
||||
// // }
|
||||
// }
|
||||
|
||||
geoNaMainForm.enableButtonSave(true);
|
||||
mainTabPanel.setLoaderVisible("", false);
|
||||
|
||||
TreeItemPanel tip = new TreeItemPanel(profileID, itemTypeTitle, orderedCards, appManagerBus);
|
||||
geoNaMainForm.addTree(tip);
|
||||
// RootPanel.get(GeoPortalDataEntryApp.DIV_PORTLET_ID).add(tip.getTree());
|
||||
treeItemPanel = new TreeItemPanel(profileID, itemTypeTitle, orderedCards, appManagerBus);
|
||||
geoNaMainForm.addTree(treeItemPanel);
|
||||
}
|
||||
|
||||
private void resetUI() {
|
||||
|
@ -1130,8 +1100,9 @@ public class GeoPortalDataEntryApp implements EntryPoint {
|
|||
// geoNaMainForm.getTreeItemPanel().createAndAddChild(theRootNode.getParentTreeItem(), newNodeFormCard,
|
||||
// canBeDuplicated, true, theRootNode.getJsonSectionFullPath());
|
||||
|
||||
TreeItem newTreeItem = new TreeItem(new NodeItem(root.getParentItem(), newNodeFormCard, canBeDuplicated, true,
|
||||
theRootNode.getJsonSectionFullPath()));
|
||||
TreeItem newTreeItem = new TreeItem(
|
||||
new NodeItem(root.getParentItem(), nodeCard.getGcubeProfile().getSectionTitle(), newNodeFormCard,
|
||||
canBeDuplicated, true, theRootNode.getJsonSectionFullPath()));
|
||||
String parentText = root.getParentItem() != null ? root.getParentItem().getText() : null;
|
||||
GWT.log("newTreeItem created: " + newTreeItem.getText() + ", parent is: " + parentText);
|
||||
|
||||
|
|
|
@ -9,8 +9,10 @@ import org.gcube.portlets.user.geoportaldataentry.client.events.TreeItemEvent;
|
|||
import org.gcube.portlets.user.geoportaldataentry.client.events.TreeItemEvent.ACTION;
|
||||
import org.gcube.portlets.user.geoportaldataentry.client.ui.card.GeoNaFormCardModel;
|
||||
import org.gcube.portlets.user.geoportaldataentry.client.ui.card.MetadataFormCard;
|
||||
import org.gcube.portlets.user.geoportaldataentry.client.ui.tree.NodeItem;
|
||||
import org.gcube.portlets.user.geoportaldataentry.client.ui.tree.TreeItemPanel;
|
||||
import org.gcube.portlets.user.geoportaldataentry.shared.GeoNaFormDataObject;
|
||||
import org.gcube.portlets.user.geoportaldataentry.shared.TNode;
|
||||
import org.gcube.portlets.widgets.mpformbuilder.client.form.generic.CreateMetadataForm;
|
||||
import org.gcube.portlets.widgets.mpformbuilder.shared.GenericDatasetBean;
|
||||
|
||||
|
@ -32,6 +34,7 @@ import com.google.gwt.user.client.Timer;
|
|||
import com.google.gwt.user.client.ui.Composite;
|
||||
import com.google.gwt.user.client.ui.HTMLPanel;
|
||||
import com.google.gwt.user.client.ui.ScrollPanel;
|
||||
import com.google.gwt.user.client.ui.TreeItem;
|
||||
import com.google.gwt.user.client.ui.Widget;
|
||||
|
||||
/**
|
||||
|
@ -55,7 +58,7 @@ public class GeonaDataEntryMainForm extends Composite {
|
|||
interface GeonaDataEntryMainFormUiBinder extends UiBinder<Widget, GeonaDataEntryMainForm> {
|
||||
}
|
||||
|
||||
private List<GeoNaFormCardModel> listCards = new ArrayList<GeoNaFormCardModel>();
|
||||
private TNode<GeoNaFormCardModel> nodes = new TNode<GeoNaFormCardModel>();
|
||||
|
||||
@UiField
|
||||
HTMLPanel mainHTMLPanel;
|
||||
|
@ -69,9 +72,6 @@ public class GeonaDataEntryMainForm extends Composite {
|
|||
@UiField
|
||||
ScrollPanel inputPanel;
|
||||
|
||||
// @UiField
|
||||
// TabPanel mainTabPanel;
|
||||
|
||||
@UiField
|
||||
AlertBlock alertFormAction;
|
||||
|
||||
|
@ -89,14 +89,14 @@ public class GeonaDataEntryMainForm extends Composite {
|
|||
|
||||
private LinkedHashMap<String, MetadataFormCard> mapForms = new LinkedHashMap<String, MetadataFormCard>();
|
||||
|
||||
//private List<Tab> listTabs = new ArrayList<Tab>();
|
||||
|
||||
private HandlerManager appManagerBus;
|
||||
|
||||
private String profileID;
|
||||
|
||||
private TreeItemPanel treeItemPanel;
|
||||
|
||||
private boolean canSave = true;
|
||||
|
||||
/**
|
||||
* Instantiates a new geona data entry main form.
|
||||
*
|
||||
|
@ -155,54 +155,17 @@ public class GeonaDataEntryMainForm extends Composite {
|
|||
inputPanel.add(form);
|
||||
}
|
||||
|
||||
// /**
|
||||
// * Adds the form.
|
||||
// *
|
||||
// * @param tabHeading the tab heading
|
||||
// * @param key
|
||||
// * @param geonFormModel the geon form model
|
||||
// */
|
||||
// public void addForm(String profileID, String tabHeading, GeoNaFormCardModel geonFormModel) {
|
||||
// this.profileID = profileID;
|
||||
// listCards.add(geonFormModel);
|
||||
// createNewCard(profileID, tabHeading, geonFormModel);
|
||||
// }
|
||||
|
||||
// /**
|
||||
// * Creates the new card.
|
||||
// *
|
||||
// * @param profileID the profile ID
|
||||
// * @param tabHeading the tab heading
|
||||
// * @param geonFormModel the geon form model
|
||||
// */
|
||||
// private void createNewCard(String profileID, String tabHeading, final GeoNaFormCardModel geonFormModel) {
|
||||
// final Tab tab = new Tab();
|
||||
// tab.setHeading(tabHeading);
|
||||
// // MetadataFormCard mfc = new MetadataFormCard(tab, createMetadataForm,
|
||||
// // repeatible);
|
||||
// MetadataFormCard mfc = new MetadataFormCard(tab, geonFormModel, appManagerBus);
|
||||
// listTabs.add(tab);
|
||||
// mainTabPanel.add(tab);
|
||||
//
|
||||
// if (listTabs.size() == 1) {
|
||||
// tab.setActive(true);
|
||||
// mainTabPanel.selectTab(0);
|
||||
// }
|
||||
//
|
||||
// mapForms.put(tabHeading, mfc);
|
||||
// }
|
||||
|
||||
/**
|
||||
* Reset.
|
||||
*/
|
||||
public void resetUI() {
|
||||
navbarTree.setVisible(false);
|
||||
mapForms.clear();
|
||||
//mainTabPanel.clear();
|
||||
// mainTabPanel.clear();
|
||||
inputPanel.clear();
|
||||
//listTabs.clear();
|
||||
// listTabs.clear();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Reset.
|
||||
*/
|
||||
|
@ -210,20 +173,44 @@ public class GeonaDataEntryMainForm extends Composite {
|
|||
inputPanel.clear();
|
||||
}
|
||||
|
||||
// /**
|
||||
// * 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);
|
||||
//
|
||||
public void validateFormsIntoTree(TreeItem root) {
|
||||
GWT.log("validateFormsIntoTree called");
|
||||
|
||||
if (root == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
GWT.log("validateFormsIntoTree called for: " + root.getText());
|
||||
|
||||
for (int i = 0; i < root.getChildCount(); i++) {
|
||||
TreeItem child = root.getChild(i);
|
||||
validateFormsIntoTree(child);
|
||||
}
|
||||
|
||||
NodeItem node = (NodeItem) root.getWidget();
|
||||
GWT.log("validateFormsIntoTree called for: " + root.getText() + " node: " + node);
|
||||
|
||||
//Is root
|
||||
if (node == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
// try {
|
||||
// node = (NodeItem) root.getWidget();
|
||||
// boolean isRoot = node.isRoot();
|
||||
// if(isRoot)
|
||||
// return true;
|
||||
// }catch (Exception e) {
|
||||
// // TODO: handle exception
|
||||
// }
|
||||
// }
|
||||
|
||||
boolean isValid = node.validateForm();
|
||||
GWT.log("validateFormsIntoTree called for: " + root.getText() + " is valid: " + isValid);
|
||||
|
||||
if (!isValid) {
|
||||
canSave = false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Save data.
|
||||
|
@ -233,29 +220,46 @@ public class GeonaDataEntryMainForm extends Composite {
|
|||
@UiHandler("buttonSave")
|
||||
void saveData(ClickEvent e) {
|
||||
|
||||
boolean canSave = true;
|
||||
canSave = true;
|
||||
TreeItem root = treeItemPanel.getRoot();
|
||||
validateFormsIntoTree(root);
|
||||
|
||||
for (String metadataType : mapForms.keySet()) {
|
||||
MetadataFormCard card = mapForms.get(metadataType);
|
||||
boolean isValid = card.validateForm();
|
||||
card.setValidCard(isValid);
|
||||
if (isValid == false)
|
||||
canSave = false;
|
||||
}
|
||||
// boolean canSave = true;
|
||||
//
|
||||
// TreeItem root = treeItemPanel.getRoot();
|
||||
//
|
||||
// for (int i=0; i<root.getChildCount(); i++) {
|
||||
// TreeItem child = root.getChild(i);
|
||||
// NodeItem node = (NodeItem) child.getWidget();
|
||||
// boolean isValid = node.validateForm();
|
||||
// if (isValid == false)
|
||||
// canSave = false;
|
||||
// }
|
||||
//
|
||||
// for (String metadataType : mapForms.keySet()) {
|
||||
// MetadataFormCard card = mapForms.get(metadataType);
|
||||
// boolean isValid = card.validateForm();
|
||||
// card.setValidCard(isValid);
|
||||
// if (isValid == false)
|
||||
// canSave = false;
|
||||
// }
|
||||
|
||||
List<GeoNaFormDataObject> listGeonaFormObjects = new ArrayList<GeoNaFormDataObject>();
|
||||
|
||||
if (canSave) {
|
||||
for (String metadataType : mapForms.keySet()) {
|
||||
MetadataFormCard card = mapForms.get(metadataType);
|
||||
List<GenericDatasetBean> listGDB = new ArrayList<GenericDatasetBean>(card.getListForms().size());
|
||||
for (CreateMetadataForm form : card.getListForms()) {
|
||||
listGDB.add(form.getFormDataBean());
|
||||
// for (String metadataType : mapForms.keySet()) {
|
||||
// MetadataFormCard card = mapForms.get(metadataType);
|
||||
// List<GenericDatasetBean> listGDB = new ArrayList<GenericDatasetBean>(card.getListForms().size());
|
||||
// for (CreateMetadataForm form : card.getListForms()) {
|
||||
// listGDB.add(form.getFormDataBean());
|
||||
//
|
||||
// }
|
||||
// listGeonaFormObjects.add(new GeoNaFormDataObject(listGDB, card.getGeonaFormModel().getGcubeProfile()));
|
||||
// }
|
||||
// appManagerBus.fireEvent(new SaveGeonaDataFormsEvent(profileID, listGeonaFormObjects));
|
||||
|
||||
showAlertOnSaveAction("Andiamo a salvare", AlertType.INFO, true);
|
||||
|
||||
}
|
||||
listGeonaFormObjects.add(new GeoNaFormDataObject(listGDB, card.getGeonaFormModel().getGcubeProfile()));
|
||||
}
|
||||
appManagerBus.fireEvent(new SaveGeonaDataFormsEvent(profileID, listGeonaFormObjects));
|
||||
} else {
|
||||
showAlertOnSaveAction("Detected errors, please fix it/them", AlertType.ERROR, true);
|
||||
}
|
||||
|
|
|
@ -1,8 +1,12 @@
|
|||
package org.gcube.portlets.user.geoportaldataentry.client.ui.tree;
|
||||
|
||||
import org.gcube.portlets.user.geoportaldataentry.client.ui.card.GeoNaFormCardModel;
|
||||
import org.gcube.portlets.widgets.mpformbuilder.client.form.generic.CreateMetadataForm;
|
||||
import org.gcube.portlets.widgets.mpformbuilder.client.form.generic.GenericFormEvents.GenericFormEventsListener;
|
||||
import org.gcube.portlets.widgets.mpformbuilder.shared.GenericDatasetBean;
|
||||
|
||||
import com.github.gwtbootstrap.client.ui.Button;
|
||||
import com.github.gwtbootstrap.client.ui.Icon;
|
||||
import com.github.gwtbootstrap.client.ui.constants.IconType;
|
||||
import com.google.gwt.core.client.GWT;
|
||||
import com.google.gwt.event.dom.client.ClickEvent;
|
||||
|
@ -21,6 +25,9 @@ public class NodeItem extends Composite {
|
|||
interface NodeItemUiBinder extends UiBinder<Widget, NodeItem> {
|
||||
}
|
||||
|
||||
@UiField
|
||||
Icon iconField;
|
||||
|
||||
@UiField
|
||||
HTML htmlNode;
|
||||
|
||||
|
@ -40,7 +47,11 @@ public class NodeItem extends Composite {
|
|||
|
||||
private boolean canBeDeleted;
|
||||
|
||||
public NodeItem(TreeItem parent, GeoNaFormCardModel geoNaFormCardModel, boolean canBeDuplicated,
|
||||
private boolean isRoot = false;
|
||||
|
||||
private MetadataFormCardEventHandler formCardEventHandler = new MetadataFormCardEventHandler();
|
||||
|
||||
public NodeItem(TreeItem parent, String nodeHTML, GeoNaFormCardModel geoNaFormCardModel, boolean canBeDuplicated,
|
||||
boolean canBeDeleted, String jsonSectionFullPath) {
|
||||
initWidget(uiBinder.createAndBindUi(this));
|
||||
this.geoNaFormCardModel = geoNaFormCardModel;
|
||||
|
@ -48,13 +59,13 @@ public class NodeItem extends Composite {
|
|||
this.jsonSectionFullPath = jsonSectionFullPath;
|
||||
this.canBeDuplicated = canBeDuplicated;
|
||||
this.canBeDeleted = canBeDeleted;
|
||||
htmlNode.setHTML(geoNaFormCardModel.getGcubeProfile().getSectionTitle());
|
||||
htmlNode.setHTML(nodeHTML);
|
||||
buttonAdd.setVisible(false);
|
||||
buttonRemove.setVisible(false);
|
||||
|
||||
if (canBeDuplicated) {
|
||||
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().setColor("#555");
|
||||
buttonAdd.setVisible(true);
|
||||
|
@ -63,7 +74,7 @@ public class NodeItem extends Composite {
|
|||
|
||||
if (canBeDeleted) {
|
||||
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().setColor("#555");
|
||||
buttonRemove.setVisible(true);
|
||||
|
@ -78,6 +89,128 @@ public class NodeItem extends Composite {
|
|||
}
|
||||
});
|
||||
|
||||
//Is not the root node
|
||||
if(geoNaFormCardModel!=null) {
|
||||
geoNaFormCardModel.getMetadataForm().addListener(formCardEventHandler);
|
||||
resetNodeStatus();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* The Class MetadataFormCardEventHandler.
|
||||
*
|
||||
* @author Francesco Mangiacrapa at ISTI-CNR (francesco.mangiacrapa@isti.cnr.it)
|
||||
*
|
||||
* Oct 12, 2020
|
||||
*/
|
||||
private class MetadataFormCardEventHandler implements GenericFormEventsListener {
|
||||
|
||||
/**
|
||||
* On form data valid.
|
||||
*
|
||||
* @param genericDatasetBean the generic dataset bean
|
||||
*/
|
||||
@Override
|
||||
public void onFormDataValid(GenericDatasetBean genericDatasetBean) {
|
||||
setNodeStatus();
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* On form data edit.
|
||||
*/
|
||||
@Override
|
||||
public void onFormDataEdit() {
|
||||
resetNodeStatus();
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* On form aborted.
|
||||
*/
|
||||
@Override
|
||||
public void onFormAborted() {
|
||||
// TODO Auto-generated method stub
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* On validation error.
|
||||
*
|
||||
* @param throwable the throwable
|
||||
* @param errorMsg the error msg
|
||||
*/
|
||||
@Override
|
||||
public void onValidationError(Throwable throwable, String errorMsg) {
|
||||
// TODO Auto-generated method stub
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Validate form.
|
||||
*
|
||||
* @return true, if successful
|
||||
*/
|
||||
public boolean validateForm() {
|
||||
|
||||
if(isRoot)
|
||||
return true;
|
||||
|
||||
CreateMetadataForm createMetadataForm = geoNaFormCardModel.getMetadataForm();
|
||||
boolean isFormDataValid = createMetadataForm.isFormDataValid();
|
||||
GWT.log("Is form data valid: " + isFormDataValid);
|
||||
if (!isFormDataValid) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the valid card.
|
||||
*
|
||||
* @param bool the new valid card
|
||||
*/
|
||||
public void setValidCard(boolean bool) {
|
||||
if (bool) {
|
||||
iconField.setIcon(IconType.OK_SIGN);
|
||||
htmlNode.asWidget().getElement().removeClassName("red-text");
|
||||
htmlNode.asWidget().getElement().addClassName("green-text");
|
||||
} else {
|
||||
iconField.setIcon(IconType.MINUS_SIGN);
|
||||
htmlNode.asWidget().getElement().removeClassName("green-text");
|
||||
htmlNode.asWidget().getElement().addClassName("red-text");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the tab status.
|
||||
*/
|
||||
private void setNodeStatus() {
|
||||
boolean isValid = validateForm();
|
||||
if (isValid) {
|
||||
iconField.setIcon(IconType.OK_SIGN);
|
||||
htmlNode.asWidget().getElement().removeClassName("red-text");
|
||||
htmlNode.asWidget().getElement().addClassName("green-text");
|
||||
} else {
|
||||
iconField.setIcon(IconType.MINUS_SIGN);
|
||||
htmlNode.asWidget().getElement().removeClassName("red-text");
|
||||
htmlNode.asWidget().getElement().addClassName("red-text");
|
||||
}
|
||||
}
|
||||
|
||||
public boolean isRoot() {
|
||||
return isRoot;
|
||||
}
|
||||
|
||||
public void setRoot(boolean isRoot) {
|
||||
this.isRoot = isRoot;
|
||||
}
|
||||
|
||||
private void resetNodeStatus() {
|
||||
iconField.setIcon(null);
|
||||
}
|
||||
|
||||
public TreeItem getParentTreeItem() {
|
||||
|
@ -104,7 +237,7 @@ public class NodeItem extends Composite {
|
|||
public boolean isCanBeDuplicated() {
|
||||
return canBeDuplicated;
|
||||
}
|
||||
|
||||
|
||||
public HTML getHtmlNode() {
|
||||
return htmlNode;
|
||||
}
|
||||
|
|
|
@ -8,11 +8,18 @@
|
|||
margin-left: 20px;
|
||||
}
|
||||
|
||||
.margin-left-10 {
|
||||
margin-left: 10px;
|
||||
}
|
||||
|
||||
.margin-left-10 {
|
||||
margin-left: 10px;
|
||||
}
|
||||
</ui:style>
|
||||
<g:HorizontalPanel>
|
||||
<g:HTMLPanel addStyleNames="margin-left-10">
|
||||
<b:Icon type="OK_SIGN" ui:field="iconField"></b:Icon>
|
||||
</g:HTMLPanel>
|
||||
<g:HTML ui:field="htmlNode">Node</g:HTML>
|
||||
<b:Button title="This section can be duplicated"
|
||||
styleName="{style.margin-left-10}" ui:field="buttonAdd"></b:Button>
|
||||
|
|
|
@ -22,7 +22,7 @@ public class TreeItemPanel {
|
|||
|
||||
private static final String JSON_ROOT_PATH = "$.";
|
||||
private Tree tree = new Tree();
|
||||
private TreeItem root = new TreeItem();
|
||||
private TreeItem root;
|
||||
private HandlerManager appManagerBus;
|
||||
private HashMap<String, List<TreeItem>> treeItemParents = new HashMap<String, List<TreeItem>>();
|
||||
private String itemTypeTitle;
|
||||
|
@ -35,7 +35,12 @@ public class TreeItemPanel {
|
|||
this.itemTypeTitle = itemTypeTitle;
|
||||
this.profileID = profileID;
|
||||
tree.setAnimationEnabled(true);
|
||||
|
||||
NodeItem rootNode = new NodeItem(null, "root", null, false, false, JSON_ROOT_PATH);
|
||||
rootNode.setRoot(true);
|
||||
root = new TreeItem(rootNode);
|
||||
root.setHTML(itemTypeTitle);
|
||||
|
||||
|
||||
// TreeMap<String, List<TreeItem>> mapParentSections = new TreeMap<String,
|
||||
// List<TreeItem>>();
|
||||
|
@ -80,7 +85,7 @@ public class TreeItemPanel {
|
|||
+ profile.getSectionName() + " title: " + profile.getSectionTitle());
|
||||
|
||||
boolean canBeDuplicated = geoNaFormCardModel.getFormCard().isInternalRepeatibleForm();
|
||||
TreeItem child = createAndAddChild(listParent.get(0), geoNaFormCardModel, canBeDuplicated, false,
|
||||
TreeItem child = createAndAddChild(listParent.get(0), profile.getSectionTitle(), geoNaFormCardModel, canBeDuplicated, false,
|
||||
jsonSectionFullPath);
|
||||
|
||||
}
|
||||
|
@ -124,10 +129,10 @@ public class TreeItemPanel {
|
|||
return jsonSectionFullPath;
|
||||
}
|
||||
|
||||
public TreeItem createAndAddChild(TreeItem parent, GeoNaFormCardModel geoNaFormCardModel, boolean canBeDuplicated,
|
||||
public TreeItem createAndAddChild(TreeItem parent, String nodeHTML, GeoNaFormCardModel geoNaFormCardModel, boolean canBeDuplicated,
|
||||
boolean canBeDeleted, String jsonSectionFullPath) {
|
||||
GWT.log("Creating and adding child to parent: " + parent.getText());
|
||||
TreeItem newChild = new TreeItem(new NodeItem(parent, geoNaFormCardModel, canBeDuplicated, canBeDeleted, jsonSectionFullPath));
|
||||
TreeItem newChild = new TreeItem(new NodeItem(parent, nodeHTML, geoNaFormCardModel, canBeDuplicated, canBeDeleted, jsonSectionFullPath));
|
||||
parent.addItem(newChild);
|
||||
|
||||
fillItemParents(jsonSectionFullPath, newChild);
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
package org.gcube.portlets.user.geoportaldataentry.shared;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
|
@ -11,11 +12,19 @@ import java.util.List;
|
|||
* Jul 6, 2022
|
||||
* @param <T> the generic type
|
||||
*/
|
||||
public class TNode<T> {
|
||||
public class TNode<T> implements Serializable {
|
||||
/**
|
||||
*
|
||||
*/
|
||||
private static final long serialVersionUID = -7319055031988865761L;
|
||||
private T data;
|
||||
private List<TNode<T>> children;
|
||||
private TNode<T> parent;
|
||||
|
||||
public TNode() {
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Instantiates a new node.
|
||||
*
|
||||
|
|
Loading…
Reference in New Issue