ckan-content-moderator-widget/src/main/java/org/gcube/portlets/widgets/ckancontentmoderator/client/ui/ContentModeratorToolbar.java

89 lines
2.4 KiB
Java
Raw Normal View History

2021-06-21 15:35:47 +02:00
package org.gcube.portlets.widgets.ckancontentmoderator.client.ui;
import org.gcube.datacatalogue.utillibrary.shared.ItemStatus;
2021-06-22 18:09:16 +02:00
import org.gcube.portlets.widgets.ckancontentmoderator.client.events.CloseAllTabsEvent;
2021-06-28 15:40:53 +02:00
import org.gcube.portlets.widgets.ckancontentmoderator.client.events.SelectItemsWithItemStatusEvent;
2021-06-21 15:35:47 +02:00
import com.github.gwtbootstrap.client.ui.Dropdown;
2021-06-25 16:56:43 +02:00
import com.github.gwtbootstrap.client.ui.Label;
2021-06-21 15:35:47 +02:00
import com.github.gwtbootstrap.client.ui.NavLink;
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.event.shared.HandlerManager;
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.Widget;
public class ContentModeratorToolbar extends Composite {
private static ContentModeratorToolbarUiBinder uiBinder = GWT.create(ContentModeratorToolbarUiBinder.class);
interface ContentModeratorToolbarUiBinder extends UiBinder<Widget, ContentModeratorToolbar> {
}
@UiField
Dropdown dropdownSelectStatus;
2021-06-22 18:09:16 +02:00
@UiField
NavLink closeAllTabs;
2021-06-25 16:56:43 +02:00
@UiField
Label statusInfo;
2021-06-21 15:35:47 +02:00
private HandlerManager eventBus;
2021-06-25 16:56:43 +02:00
private ItemStatus activeStatus;
public ContentModeratorToolbar(HandlerManager eventBus, ItemStatus status) {
2021-06-21 15:35:47 +02:00
initWidget(uiBinder.createAndBindUi(this));
this.eventBus = eventBus;
2021-06-28 15:40:53 +02:00
setActiveStatus(status);
2021-06-21 15:35:47 +02:00
fillItemStatusOptions();
2021-06-22 18:09:16 +02:00
bindEvents();
2021-06-28 15:40:53 +02:00
2021-06-22 18:09:16 +02:00
}
private void bindEvents() {
closeAllTabs.addClickHandler(new ClickHandler() {
2021-06-25 16:56:43 +02:00
2021-06-22 18:09:16 +02:00
@Override
public void onClick(ClickEvent event) {
eventBus.fireEvent(new CloseAllTabsEvent());
2021-06-25 16:56:43 +02:00
2021-06-22 18:09:16 +02:00
}
});
2021-06-21 15:35:47 +02:00
}
private void fillItemStatusOptions() {
2021-06-25 16:56:43 +02:00
for (final ItemStatus status : ItemStatus.values()) {
2021-06-21 15:35:47 +02:00
2021-06-28 15:40:53 +02:00
NavLink navLink = new NavLink();
navLink.setText(status.getLabel());
navLink.addClickHandler(new ClickHandler() {
2021-06-21 15:35:47 +02:00
@Override
public void onClick(ClickEvent event) {
2022-02-18 14:17:19 +01:00
GWT.log("clicked: " + status);
2021-06-25 16:56:43 +02:00
setActiveStatus(status);
2022-02-18 14:17:19 +01:00
eventBus.fireEvent(new SelectItemsWithItemStatusEvent(status, null, null));
2021-06-21 15:35:47 +02:00
}
});
2021-06-28 15:40:53 +02:00
dropdownSelectStatus.add(navLink);
2021-06-21 15:35:47 +02:00
}
2021-06-25 16:56:43 +02:00
}
private void setActiveStatus(ItemStatus status) {
this.activeStatus = status;
2021-06-28 15:40:53 +02:00
this.statusInfo.setText(activeStatus.getLabel());
2021-06-25 16:56:43 +02:00
}
2021-06-21 15:35:47 +02:00
2021-06-25 16:56:43 +02:00
public ItemStatus getActiveStatus() {
return activeStatus;
2021-06-21 15:35:47 +02:00
}
}