2022-07-01 15:39:27 +02:00
|
|
|
package org.gcube.portlets.user.geoportaldataentry.client.ui.tree;
|
|
|
|
|
2022-07-05 15:51:43 +02:00
|
|
|
import org.gcube.portlets.user.geoportaldataentry.client.ui.card.GeoNaFormCardModel;
|
2022-07-04 16:34:15 +02:00
|
|
|
|
2022-07-01 15:39:27 +02:00
|
|
|
import com.github.gwtbootstrap.client.ui.Button;
|
|
|
|
import com.github.gwtbootstrap.client.ui.constants.IconType;
|
|
|
|
import com.google.gwt.core.client.GWT;
|
|
|
|
import com.google.gwt.event.dom.client.ClickEvent;
|
|
|
|
import com.google.gwt.event.dom.client.ClickHandler;
|
|
|
|
import com.google.gwt.uibinder.client.UiBinder;
|
|
|
|
import com.google.gwt.uibinder.client.UiField;
|
|
|
|
import com.google.gwt.user.client.ui.Composite;
|
|
|
|
import com.google.gwt.user.client.ui.HTML;
|
|
|
|
import com.google.gwt.user.client.ui.TreeItem;
|
|
|
|
import com.google.gwt.user.client.ui.Widget;
|
|
|
|
|
|
|
|
public class NodeItem extends Composite {
|
|
|
|
|
|
|
|
private static NodeItemUiBinder uiBinder = GWT.create(NodeItemUiBinder.class);
|
|
|
|
|
|
|
|
interface NodeItemUiBinder extends UiBinder<Widget, NodeItem> {
|
|
|
|
}
|
|
|
|
|
|
|
|
@UiField
|
|
|
|
HTML htmlNode;
|
|
|
|
|
|
|
|
@UiField
|
|
|
|
Button buttonAdd;
|
|
|
|
|
|
|
|
@UiField
|
|
|
|
Button buttonRemove;
|
|
|
|
|
2022-07-05 15:51:43 +02:00
|
|
|
private GeoNaFormCardModel geoNaFormCardModel;
|
|
|
|
|
|
|
|
private TreeItem parentTreeItem;
|
|
|
|
|
|
|
|
private String jsonSectionFullPath;
|
|
|
|
|
2022-07-06 11:06:35 +02:00
|
|
|
private boolean canBeDuplicated;
|
|
|
|
|
|
|
|
private boolean canBeDeleted;
|
|
|
|
|
|
|
|
public NodeItem(TreeItem parent, GeoNaFormCardModel geoNaFormCardModel, boolean canBeDuplicated,
|
|
|
|
boolean canBeDeleted, String jsonSectionFullPath) {
|
2022-07-01 15:39:27 +02:00
|
|
|
initWidget(uiBinder.createAndBindUi(this));
|
2022-07-05 15:51:43 +02:00
|
|
|
this.geoNaFormCardModel = geoNaFormCardModel;
|
|
|
|
this.parentTreeItem = parent;
|
|
|
|
this.jsonSectionFullPath = jsonSectionFullPath;
|
2022-07-06 11:06:35 +02:00
|
|
|
this.canBeDuplicated = canBeDuplicated;
|
|
|
|
this.canBeDeleted = canBeDeleted;
|
2022-07-05 15:51:43 +02:00
|
|
|
htmlNode.setHTML(geoNaFormCardModel.getGcubeProfile().getSectionTitle());
|
|
|
|
buttonAdd.setVisible(false);
|
|
|
|
buttonRemove.setVisible(false);
|
|
|
|
|
|
|
|
if (canBeDuplicated) {
|
|
|
|
buttonAdd.setIcon(IconType.COPY);
|
2022-07-06 11:06:35 +02:00
|
|
|
//buttonAdd.getElement().getStyle().setProperty("pointerEvents", "none");
|
2022-07-05 15:51:43 +02:00
|
|
|
buttonAdd.getElement().getStyle().setProperty("textDecoration", "none");
|
|
|
|
buttonAdd.getElement().getStyle().setColor("#555");
|
|
|
|
buttonAdd.setVisible(true);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
if (canBeDeleted) {
|
|
|
|
buttonRemove.setIcon(IconType.TRASH);
|
2022-07-06 11:06:35 +02:00
|
|
|
//buttonRemove.getElement().getStyle().setProperty("pointerEvents", "none");
|
2022-07-05 15:51:43 +02:00
|
|
|
buttonRemove.getElement().getStyle().setProperty("textDecoration", "none");
|
|
|
|
buttonRemove.getElement().getStyle().setColor("#555");
|
|
|
|
buttonRemove.setVisible(true);
|
|
|
|
}
|
2022-07-01 15:39:27 +02:00
|
|
|
|
|
|
|
htmlNode.addClickHandler(new ClickHandler() {
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public void onClick(ClickEvent event) {
|
|
|
|
// TODO Auto-generated method stub
|
|
|
|
|
|
|
|
}
|
|
|
|
});
|
|
|
|
|
|
|
|
}
|
|
|
|
|
2022-07-05 15:51:43 +02:00
|
|
|
public TreeItem getParentTreeItem() {
|
|
|
|
return parentTreeItem;
|
|
|
|
}
|
|
|
|
|
|
|
|
public GeoNaFormCardModel getGeoNaFormCardModel() {
|
|
|
|
return geoNaFormCardModel;
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Gets the json section full path.
|
|
|
|
*
|
|
|
|
* @return the json section full path
|
|
|
|
*/
|
|
|
|
public String getJsonSectionFullPath() {
|
|
|
|
return jsonSectionFullPath;
|
|
|
|
}
|
|
|
|
|
2022-07-06 11:06:35 +02:00
|
|
|
public boolean isCanBeDeleted() {
|
|
|
|
return canBeDeleted;
|
|
|
|
}
|
|
|
|
|
|
|
|
public boolean isCanBeDuplicated() {
|
|
|
|
return canBeDuplicated;
|
|
|
|
}
|
|
|
|
|
2022-07-01 15:39:27 +02:00
|
|
|
}
|