/**
*
*/
package org.semanticsoft.vaaclipse.additions.view;
import javax.inject.Named;
import org.eclipse.e4.core.contexts.ContextInjectionFactory;
import org.eclipse.e4.core.contexts.IEclipseContext;
import org.eclipse.e4.core.di.annotations.Execute;
import org.eclipse.e4.core.di.annotations.Optional;
import org.eclipse.e4.ui.model.application.MApplication;
import org.eclipse.e4.ui.model.application.ui.basic.MWindow;
import org.eclipse.e4.ui.workbench.modeling.EPartService;
import org.eclipse.e4.ui.workbench.modeling.EPartService.PartState;
import org.semanticsoft.vaadin.optiondialog.OptionDialog;
import org.semanticsoft.vaadin.optiondialog.OptionDialog.OptionsAlign;
import com.vaadin.server.ThemeResource;
import com.vaadin.server.Sizeable.Unit;
import com.vaadin.ui.UI;
import com.vaadin.ui.Window;
/**
* @author rushan
*
*/
public class ShowViewHandler {
public static final String VIEWS_SHOW_VIEW_PARM_ID = "org.eclipse.ui.views.showView.viewId"; //$NON-NLS-1$
@Execute
public void execute(UI ui, MApplication application,
EPartService partService, IEclipseContext context,
@Optional @Named(VIEWS_SHOW_VIEW_PARM_ID) String viewId) {
if (viewId != null) {
partService.showPart(viewId, PartState.ACTIVATE);
return;
}
OptionDialog dlg = new OptionDialog();
dlg.setOptionButtonsAlignment(OptionsAlign.RIGHT);
dlg.setOptionButtonsWidth(80, Unit.PIXELS);
dlg.setWidth("350px");
dlg.setHeight("500px");
dlg.setModal(true);
dlg.setCaption("Show View");
//static resource will process this, so we set application header icon without using ResourceInfoProvider service as for Open Perspective Dialog
dlg.setIcon(new ThemeResource("../base/favicon.ico"));
ShowViewDialogContent componentProvider = ContextInjectionFactory.make(
ShowViewDialogContent.class, context);
dlg.setComponentProvider(componentProvider);
dlg.addOption(0, "OK");
dlg.addOption(1, "Cancel");
ui.addWindow(dlg);
}
}