workspace-explorer/src/main/java/org/gcube/portlets/widgets/wsexplorer/client/view/Navigation.java

135 lines
3.6 KiB
Java

/**
*
*/
package org.gcube.portlets.widgets.wsexplorer.client.view;
import org.gcube.portlets.widgets.wsexplorer.client.WorkspaceExplorerConstants;
import org.gcube.portlets.widgets.wsexplorer.client.event.CreateFolderClickEvent;
import org.gcube.portlets.widgets.wsexplorer.client.event.LoadMySpecialFolderEvent;
import org.gcube.portlets.widgets.wsexplorer.client.event.LoadRootEvent;
import org.gcube.portlets.widgets.wsexplorer.client.resources.WorkspaceExplorerResources;
import org.gcube.portlets.widgets.wsexplorer.shared.ItemDTO;
import org.gcube.portlets.widgets.wsexplorer.shared.ItemCategory;
import com.github.gwtbootstrap.client.ui.NavWidget;
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.rpc.AsyncCallback;
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.FlowPanel;
import com.google.gwt.user.client.ui.Widget;
/**
*
* @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
* Jun 24, 2015
*/
public class Navigation extends Composite{
private static NavigationUiBinder uiBinder = GWT.create(NavigationUiBinder.class);
@UiField
FlowPanel navigation;
@UiField
NavWidget home;
@UiField
NavWidget vre_folder;
@UiField
NavWidget new_folder;
private HandlerManager eventBus;
/**
* The Interface BreadcrumbsUiBinder.
*
* @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
* Jun 23, 2015
*/
interface NavigationUiBinder extends UiBinder<Widget, Navigation> {
}
/**
* @param eventbus
*
*/
public Navigation(HandlerManager eventBus) {
initWidget(uiBinder.createAndBindUi(this));
this.eventBus = eventBus;
// getElement().getStyle().setMarginLeft(5.0, Unit.PX);
home.setActive(true);
WorkspaceExplorerConstants.workspaceNavigatorService.getItemByCategory(ItemCategory.HOME, new AsyncCallback<ItemDTO>() {
@Override
public void onSuccess(ItemDTO result) {
home.setText(result.getName());
}
@Override
public void onFailure(Throwable caught) {
GWT.log(caught.getMessage());
home.setText(WorkspaceExplorerConstants.HOME_LABEL);
}
});
home.setBaseIcon(WorkspaceExplorerResources.CustomIconType.home);
home.addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
Navigation.this.eventBus.fireEvent(new LoadRootEvent());
}
});
vre_folder.setActive(true);
vre_folder.setBaseIcon(WorkspaceExplorerResources.CustomIconType.vre_folder);
WorkspaceExplorerConstants.workspaceNavigatorService.getItemByCategory(ItemCategory.VRE_FOLDER, new AsyncCallback<ItemDTO>() {
@Override
public void onSuccess(ItemDTO result) {
vre_folder.setText(result.getName());
}
@Override
public void onFailure(Throwable caught) {
GWT.log(caught.getMessage());
vre_folder.setText(WorkspaceExplorerConstants.VRE_FOLDERS_LABEL);
}
});
vre_folder.addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
Navigation.this.eventBus.fireEvent(new LoadMySpecialFolderEvent());
}
});
new_folder.setActive(false);
new_folder.setBaseIcon(WorkspaceExplorerResources.CustomIconType.new_folder);
new_folder.addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
Navigation.this.eventBus.fireEvent(new CreateFolderClickEvent());
}
});
}
public void setVisibleNewFolderFacility(boolean bool){
new_folder.setVisible(bool);
}
}