statistical-algorithms-impo.../src/main/java/org/gcube/portlets/user/statisticalalgorithmsimporter/client/maindata/MainDataPanel.java

98 lines
2.2 KiB
Java
Executable File

package org.gcube.portlets.user.statisticalalgorithmsimporter.client.maindata;
import org.gcube.portlets.user.statisticalalgorithmsimporter.client.event.ProjectStatusEvent;
import org.gcube.portlets.user.statisticalalgorithmsimporter.shared.project.Project;
import com.allen_sauer.gwt.log.client.Log;
import com.google.gwt.event.shared.EventBus;
import com.sencha.gxt.core.client.util.Margins;
import com.sencha.gxt.widget.core.client.container.MarginData;
import com.sencha.gxt.widget.core.client.container.SimpleContainer;
/**
*
* @author Giancarlo Panichi
*
*
*/
public class MainDataPanel extends SimpleContainer {
private EventBus eventBus;
private CodeEditPanel codeEditPanel;
public MainDataPanel(EventBus eventBus) {
super();
this.eventBus = eventBus;
Log.debug("MainDataPanel");
init();
create();
bindToEvents();
}
protected void init() {
forceLayoutOnResize = true;
// setBodyBorder(false);
setBorders(false);
// setHeaderVisible(false);
}
protected void create() {
}
private void bindToEvents() {
eventBus.addHandler(ProjectStatusEvent.TYPE,
new ProjectStatusEvent.ProjectStatusEventHandler() {
@Override
public void onProjectStatus(ProjectStatusEvent event) {
Log.debug("Main Data Panel catch ProjectStatusEvent: "+event);
doProjectStatusCommand(event);
}
});
Log.debug("Main Data Panel bind to event do!");
}
private void doProjectStatusCommand(ProjectStatusEvent event) {
if (event.getProjectStatusEventType() == null) {
return;
}
switch (event.getProjectStatusEventType()) {
case DELETE_MAIN_CODE:
case MAIN_CODE_SET:
case BINARY_CODE_SET:
case DELETE_BINARY_CODE:
codeEditPanel.codeUpdate(event.getProject());
break;
case OPEN:
addCodeEditPanel(event.getProject());
break;
case SAVE:
case START:
case UPDATE:
case SOFTWARE_PUBLISH:
case SOFTWARE_REPACKAGE:
case ADD_RESOURCE:
case DELETE_RESOURCE:
case EXPLORER_REFRESH:
break;
default:
break;
}
}
private void addCodeEditPanel(Project project) {
codeEditPanel = new CodeEditPanel(project, eventBus);
add(codeEditPanel, new MarginData(new Margins(0)));
forceLayout();
}
}