adjusted legal info, refactoring
diff --git a/jenkins.build.config.xml b/jenkins.build.config.xml
index 130185a..c8ee5d9 100644
--- a/jenkins.build.config.xml
+++ b/jenkins.build.config.xml
@@ -53,7 +53,6 @@
<jenkins.build.dependency>org.eclipse.osbp.xtext.i18n</jenkins.build.dependency>
<jenkins.build.dependency>org.eclipse.osbp.xtext.menu</jenkins.build.dependency>
<jenkins.build.dependency>org.eclipse.osbp.xtext.perspective</jenkins.build.dependency>
- <jenkins.build.dependency>org.eclipse.osbp.xtext.strategy</jenkins.build.dependency>
<jenkins.build.dependency>org.eclipse.osbp.xtext.table</jenkins.build.dependency>
</jenkins.build.dependencies>
</jenkins>
diff --git a/org.eclipse.osbp.vaaclipse.addons.softwarefactory.feature/feature.xml b/org.eclipse.osbp.vaaclipse.addons.softwarefactory.feature/feature.xml
index c44ed7d..89bbac5 100644
--- a/org.eclipse.osbp.vaaclipse.addons.softwarefactory.feature/feature.xml
+++ b/org.eclipse.osbp.vaaclipse.addons.softwarefactory.feature/feature.xml
@@ -17,7 +17,7 @@
label="%featureName"
version="0.9.0.qualifier"
provider-name="%providerName"
- plugin="org.eclipse.osbp.vaaclipse.addons.softwarefactory">
+ plugin="org.eclipse.osbp.license">
<description>
%description
diff --git a/org.eclipse.osbp.vaaclipse.addons.softwarefactory/META-INF/MANIFEST.MF b/org.eclipse.osbp.vaaclipse.addons.softwarefactory/META-INF/MANIFEST.MF
index a059916..890a208 100644
--- a/org.eclipse.osbp.vaaclipse.addons.softwarefactory/META-INF/MANIFEST.MF
+++ b/org.eclipse.osbp.vaaclipse.addons.softwarefactory/META-INF/MANIFEST.MF
@@ -73,7 +73,8 @@
org.eclipse.osbp.runtime.web.ecview.presentation.vaadin;bundle-version="0.9.0",
org.eclipse.osbp.runtime.web.vaadin.common;bundle-version="0.9.0",
org.eclipse.osbp.webserver.messagequeue;bundle-version="0.9.0",
- org.eclipse.osbp.vaaclipse.common.ecview;bundle-version="0.9.0"
+ org.eclipse.osbp.vaaclipse.common.ecview;bundle-version="0.9.0",
+ org.eclipse.osbp.ecview.extension.strategy
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
Import-Package: javax.annotation,
javax.jms;version="1.1.0",
@@ -95,7 +96,6 @@
org.eclipse.osbp.vaadin.optiondialog;version="0.9.0",
org.eclipse.osbp.xtext.builder.metadata.services;version="0.9.0",
org.eclipse.osbp.xtext.menu.common;version="0.9.0",
- org.eclipse.osbp.xtext.strategy;version="0.9.0",
org.eclipse.osbp.xtext.table;version="0.9.0",
org.eclipse.xtext.resource,
org.vaadin.hene.popupbutton;version="2.5.0"
diff --git a/org.eclipse.osbp.vaaclipse.addons.softwarefactory/src/org/eclipse/osbp/vaaclipse/addons/softwarefactory/handler/UserHandler.java b/org.eclipse.osbp.vaaclipse.addons.softwarefactory/src/org/eclipse/osbp/vaaclipse/addons/softwarefactory/handler/UserHandler.java
index 1ae2f49..ad802fb 100644
--- a/org.eclipse.osbp.vaaclipse.addons.softwarefactory/src/org/eclipse/osbp/vaaclipse/addons/softwarefactory/handler/UserHandler.java
+++ b/org.eclipse.osbp.vaaclipse.addons.softwarefactory/src/org/eclipse/osbp/vaaclipse/addons/softwarefactory/handler/UserHandler.java
@@ -130,6 +130,8 @@
popup.addStyleName("os-usermenubutton");
popup.setContent(userMenu.getMenu(popup));
buttons.addComponent(popup);
+ } else {
+ log.info("UserMenu is hidden due to prefereces!");
}
container.addComponent(form);
diff --git a/org.eclipse.osbp.vaaclipse.addons.softwarefactory/src/org/eclipse/osbp/vaaclipse/addons/softwarefactory/keybinding/KeyBindingDialogProvider.java b/org.eclipse.osbp.vaaclipse.addons.softwarefactory/src/org/eclipse/osbp/vaaclipse/addons/softwarefactory/keybinding/KeyBindingDialogProvider.java
index 86f10da..6801f30 100644
--- a/org.eclipse.osbp.vaaclipse.addons.softwarefactory/src/org/eclipse/osbp/vaaclipse/addons/softwarefactory/keybinding/KeyBindingDialogProvider.java
+++ b/org.eclipse.osbp.vaaclipse.addons.softwarefactory/src/org/eclipse/osbp/vaaclipse/addons/softwarefactory/keybinding/KeyBindingDialogProvider.java
@@ -20,37 +20,26 @@
import javax.inject.Inject;
-import org.eclipse.core.commands.CommandManager;
import org.eclipse.core.commands.common.NotDefinedException;
import org.eclipse.e4.ui.model.application.commands.MBindingContext;
import org.eclipse.e4.ui.model.application.commands.MBindingTable;
import org.eclipse.e4.ui.model.application.commands.MCommand;
import org.eclipse.e4.ui.model.application.commands.MKeyBinding;
import org.eclipse.emf.ecore.EObject;
-import org.eclipse.osbp.dsl.metadata.service.DSLBuilderParticipant.DSLMetadataService;
-import org.eclipse.osbp.runtime.common.i18n.II18nService;
import org.eclipse.osbp.ui.api.contextfunction.IVaadinDialogProvider;
import org.eclipse.osbp.ui.api.metadata.IDSLMetadataService;
import org.eclipse.osbp.ui.api.user.IUser;
import org.eclipse.osbp.vaaclipse.addons.keybinding.IKeyBindingService;
-import com.vaadin.data.Property;
-import com.vaadin.data.Property.ValueChangeEvent;
import com.vaadin.data.util.BeanItemContainer;
-import com.vaadin.event.ItemClickEvent;
import com.vaadin.ui.Component;
import com.vaadin.ui.Table;
-import com.vaadin.ui.UI;
import com.vaadin.ui.VerticalLayout;
/**
* The Class KeyBindingDialogProvider.
*/
public class KeyBindingDialogProvider implements IVaadinDialogProvider, IUser.UserLocaleListener {
- /** The command manager. */
- @Inject
- private CommandManager commandManager;
-
/** The metadata service. */
@Inject
private IDSLMetadataService dslMetadataService;
diff --git a/org.eclipse.osbp.vaaclipse.addons.softwarefactory/src/org/eclipse/osbp/vaaclipse/addons/softwarefactory/perspective/BrowserView.java b/org.eclipse.osbp.vaaclipse.addons.softwarefactory/src/org/eclipse/osbp/vaaclipse/addons/softwarefactory/perspective/BrowserView.java
index a939fff..53ac6cb 100644
--- a/org.eclipse.osbp.vaaclipse.addons.softwarefactory/src/org/eclipse/osbp/vaaclipse/addons/softwarefactory/perspective/BrowserView.java
+++ b/org.eclipse.osbp.vaaclipse.addons.softwarefactory/src/org/eclipse/osbp/vaaclipse/addons/softwarefactory/perspective/BrowserView.java
@@ -8,18 +8,9 @@
import org.eclipse.e4.core.contexts.IEclipseContext;
import org.eclipse.e4.ui.di.Focus;
import org.eclipse.e4.ui.model.application.MApplication;
-import org.eclipse.e4.ui.model.application.ui.advanced.MPerspective;
import org.eclipse.e4.ui.model.application.ui.basic.MPart;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.osbp.ecview.core.extension.model.extension.YBrowser;
-import org.eclipse.osbp.runtime.common.event.EventDispatcherEvent;
-import org.eclipse.osbp.runtime.common.event.EventDispatcherEvent.EventDispatcherCommand;
-import org.eclipse.osbp.runtime.common.event.EventDispatcherEvent.EventDispatcherDataTag;
-import org.eclipse.osbp.runtime.common.event.IEventDispatcher;
import org.eclipse.osbp.runtime.web.ecview.presentation.vaadin.common.BrowserComponent;
-import org.eclipse.osbp.runtime.web.ecview.presentation.vaadin.common.FilteringComponentEmbeddable;
import org.eclipse.osbp.ui.api.e4.IE4Dialog;
-import org.eclipse.osbp.ui.api.metadata.IDSLMetadataService;
import org.eclipse.osbp.ui.api.perspective.IPerspectiveProvider;
import org.eclipse.osbp.ui.api.user.IUser;
@@ -42,12 +33,6 @@
@Inject
private IUser user;
- @Inject
- private IEventDispatcher eventDispatcher;
-
- @Inject
- private IDSLMetadataService dslMetadataService;
-
private VerticalLayout parent;
private BrowserComponent browserComponent;
private transient IEclipseContext context;
@@ -58,7 +43,6 @@
this.context = context;
}
- @SuppressWarnings("unchecked")
@PostConstruct
public void createView() {
context.set(IE4Dialog.class, this);
diff --git a/org.eclipse.osbp.vaaclipse.addons.softwarefactory/src/org/eclipse/osbp/vaaclipse/addons/softwarefactory/perspective/DialogProvider.java b/org.eclipse.osbp.vaaclipse.addons.softwarefactory/src/org/eclipse/osbp/vaaclipse/addons/softwarefactory/perspective/DialogProvider.java
index 9e25743..339584f 100644
--- a/org.eclipse.osbp.vaaclipse.addons.softwarefactory/src/org/eclipse/osbp/vaaclipse/addons/softwarefactory/perspective/DialogProvider.java
+++ b/org.eclipse.osbp.vaaclipse.addons.softwarefactory/src/org/eclipse/osbp/vaaclipse/addons/softwarefactory/perspective/DialogProvider.java
@@ -22,19 +22,18 @@
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
-import java.util.Iterator;
-import java.util.LinkedHashSet;
import java.util.List;
import java.util.Locale;
import java.util.Map;
import java.util.Map.Entry;
-import java.util.function.Consumer;
import java.util.Set;
import java.util.UUID;
+import java.util.function.Consumer;
import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;
import javax.inject.Inject;
+import javax.inject.Named;
import javax.swing.Timer;
import org.eclipse.e4.core.contexts.IEclipseContext;
@@ -44,8 +43,6 @@
import org.eclipse.e4.ui.model.application.MApplication;
import org.eclipse.e4.ui.model.application.ui.advanced.MPerspective;
import org.eclipse.e4.ui.model.application.ui.basic.MPart;
-import org.eclipse.e4.ui.model.application.ui.impl.UIElementImpl;
-import org.eclipse.e4.ui.model.application.ui.impl.UiPackageImpl;
import org.eclipse.e4.ui.workbench.IPresentationEngine;
import org.eclipse.emf.common.notify.impl.AdapterImpl;
import org.eclipse.emf.ecore.EObject;
@@ -62,7 +59,6 @@
import org.eclipse.osbp.ecview.core.common.model.core.YEmbeddable;
import org.eclipse.osbp.ecview.core.common.model.core.YEmbeddableEvent;
import org.eclipse.osbp.ecview.core.common.model.core.YField;
-import org.eclipse.osbp.ecview.core.common.model.core.YFocusable;
import org.eclipse.osbp.ecview.core.common.model.core.YView;
import org.eclipse.osbp.ecview.core.common.model.core.util.BindingIdUtil;
import org.eclipse.osbp.ecview.core.common.notification.AbstractReloadRequestService;
@@ -71,9 +67,11 @@
import org.eclipse.osbp.ecview.core.common.store.IViewStore;
import org.eclipse.osbp.ecview.core.common.validation.IFieldValidationManager;
import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YButton;
+import org.eclipse.osbp.ecview.core.extension.model.extension.listener.YButtonClickListener;
import org.eclipse.osbp.ecview.core.util.emf.ModelUtil;
-import org.eclipse.osbp.ecview.dsl.extensions.SuperTypeCollector;
-import org.eclipse.osbp.ecview.extension.model.YStrategyLayout;
+import org.eclipse.osbp.ecview.extension.api.IFocusingStrategy;
+import org.eclipse.osbp.ecview.extension.api.ILayoutingStrategy;
import org.eclipse.osbp.ecview.extension.presentation.vaadin.components.common.ECViewComponent;
import org.eclipse.osbp.ecview.semantic.uimodel.UiBeanSlot;
import org.eclipse.osbp.osgi.hybrid.api.AbstractHybridVaaclipseView;
@@ -88,7 +86,7 @@
import org.eclipse.osbp.runtime.common.event.IEventDispatcher;
import org.eclipse.osbp.runtime.common.event.SelectionStore;
import org.eclipse.osbp.runtime.common.filter.IDTOService;
-import org.eclipse.osbp.runtime.common.filter.IDTOServiceWithMutablePersistence;
+import org.eclipse.osbp.runtime.common.filter.IDTOService;
import org.eclipse.osbp.runtime.common.validation.IStatus;
import org.eclipse.osbp.runtime.common.validation.ValidationKind;
import org.eclipse.osbp.runtime.web.vaadin.components.dialogs.AcceptDeleteDialog;
@@ -129,7 +127,6 @@
import org.eclipse.osbp.xtext.action.common.IToolbarAction;
import org.eclipse.osbp.xtext.dialogdsl.Dialog;
import org.eclipse.osbp.xtext.dialogdsl.DialogFieldHook;
-import org.eclipse.xtext.common.types.JvmTypeReference;
import org.eclipse.xtext.xbase.lib.Pair;
import org.osgi.service.event.Event;
import org.osgi.service.event.EventHandler;
@@ -138,6 +135,7 @@
import com.vaadin.event.LayoutEvents.LayoutClickEvent;
import com.vaadin.ui.Button;
+import com.vaadin.ui.Button.ClickEvent;
import com.vaadin.ui.Component;
import com.vaadin.ui.HorizontalLayout;
import com.vaadin.ui.Notification;
@@ -145,7 +143,6 @@
import com.vaadin.ui.UI;
import com.vaadin.ui.VerticalLayout;
import com.vaadin.ui.Window;
-import com.vaadin.ui.Button.ClickEvent;
/**
* The Class ECViewDialog.
@@ -155,7 +152,8 @@
*/
@SuppressWarnings("all")
public class DialogProvider<DTO> extends AbstractHybridVaaclipseView implements
- IUser.UserLocaleListener, IEventDispatcher.Receiver, IFieldValidationManager.Listener , IE4Dialog, IViewEmbeddedProvider{
+ IUser.UserLocaleListener, IEventDispatcher.Receiver, IFieldValidationManager.Listener , IE4Dialog,
+ IViewEmbeddedProvider, YButtonClickListener{
/** The Constant log. */
protected final static Logger log = LoggerFactory.getLogger("vaaclipseDialog");
@@ -241,7 +239,7 @@
protected ViewLayoutManager layoutManager;
/** The dto service. */
- private IDTOServiceWithMutablePersistence<DTO> dtoService;
+ private IDTOService<DTO> dtoService;
/** The toolbar helper. */
private IToolbarAction toolbar;
@@ -276,11 +274,16 @@
/** The underlying xtext dialog model. */
private Dialog dialogModel = null;
+ @Inject
+ @Named("Focusing")
+ private IFocusingStrategy focusingStrategy;
+
/** The reload request service for suggesttext fields. */
private IReloadRequestService reloadRequestService = new AbstractReloadRequestService() {
@Override
public void requestReload(YEmbeddable component, Object newDto) {
updateBindings(newDto);
+ setNewCreatedDto(newDto == null);
}
};
@@ -320,6 +323,8 @@
private VerticalLayout parent;
+ private YView yView;
+
/**
* Instantiates a new abstract ec view dialog.
*
@@ -356,9 +361,15 @@
}
parent.addStyleName(EnumCssClass.DIALOG_VIEW.toString());
layoutManager = new ViewLayoutManager();
- layoutManager.init(parent);
+ if(dialogModel.isHasBackgroundImage()) {
+ layoutManager.init(parent, viewId.replaceAll("\\.","-") + "-"+dialogModel.getBackgroundImage(), themeResourceService.getThemeResourceRelativePath(dialogModel.getBackgroundImage(), ThemeResourceType.IMAGE));
+ } else {
+ layoutManager.init(parent);
+ }
+
ecviewComponent.setSizeFull();
layoutManager.getDataArea().addComponent(ecviewComponent);
+ layoutManager.setLabelValue(dslMetadataService.translate(user.getLocale().toLanguageTag(), dialogLabel));
selectDialog = new SelectDialog();
// create toolbar
if(dialogModel.getToolbar() != null) {
@@ -374,18 +385,18 @@
private void initDialog() {
if(mPart != null) {
- dialogModel = (Dialog) mPart.getTransientData().get("dialogModel");
+ dialogModel = (Dialog) mPart.getTransientData().get(IPerspectiveProvider.TRANSIENT_DIALOG_MODEL);
} else {
- dialogModel = (Dialog) eclipseContext.get("embeddedDialogModel");
+ dialogModel = (Dialog) eclipseContext.get(IPerspectiveProvider.TRANSIENT_EMBEDDED_DIALOG_MODEL);
}
viewId = dslMetadataService.getECViewId(dialogModel);
dtoName = dslMetadataService.getFullyQualifiedName(dialogModel.getDto());
if(dtoName != null) {
LEntity entity = EntityUtils.getEntityFromDto(dialogModel.getDto());
- entityName = EntityUtils.getFQNForLEntity(entity);
- primaryKey = dslMetadataService.getFullyQualifiedName(entity)+"."+entity.getIdAttributeName();
+ entityName = entity!=null?EntityUtils.getFQNForLEntity(entity):"";
+ primaryKey = entity!=null?dslMetadataService.getFullyQualifiedName(entity)+"."+entity.getIdAttributeName():"";
dto = dslMetadataService.getClass(dialogModel.getDto(), "dto");
- dtoService = (IDTOServiceWithMutablePersistence<DTO>) DtoServiceAccess.getService(dto);
+ dtoService = (IDTOService<DTO>) DtoServiceAccess.getService(dto);
subTypes = dslMetadataService.getAllSubtypes(user.getLocale().toLanguageTag(), dto);
}
dialogLabel = dialogModel.getName();
@@ -420,12 +431,14 @@
associationService = viewContext.getService(IWidgetAssocationsService.ID);
// bridges the validation from ECView core to Vaaclipse
setupValidationBridge();
- YView yView = (YView) viewContext.getViewEditpart().getModel();
+ yView = (YView) viewContext.getViewEditpart().getModel();
if (yView == null) {
Notification.show("Dialog could not be found!", Type.ERROR_MESSAGE);
return;
}
}
+
+ addSaveAndNewListener();
if(dialogModel.getGroup() != null) {
dialogFunctionGroup = functionLibraryService.getFunctionLibraryClass(dslMetadataService.getFullyQualifiedName(dialogModel.getGroup()));
@@ -448,7 +461,7 @@
postFocus = functionLibraryService.getMethod(dialogFunctionGroup, fieldHook.getPostFocus().getName());
}
Pair functions = new Pair(preFocus, postFocus);
- YField fld = (YField)associationService.getModelElement(viewId+"."+dtoName+"."+fieldHook.getAttribute().getName());
+ YField fld = (YField)associationService.getModelElement(viewId+"."+dialogModel.getDto().getName()+"."+fieldHook.getAttribute().getName());
if(fld != null) {
fieldHooks.put(fld, functions);
fld.eAdapters().add(new AdapterImpl() {
@@ -475,6 +488,16 @@
}
}
+ private void addSaveAndNewListener() {
+ List<EObject> elements = associationService.getModelElements();
+ for(EObject element:elements) {
+ if(element instanceof YButton && ((YButton)element).getTags().contains(ILayoutingStrategy.TAG__SAVEANDNEW)) {
+ ((YButton)element).addClickListener(this);
+ ((YButton)element).getTags().add(uuid);
+ }
+ }
+ }
+
public Component getContent() {
return parent;
}
@@ -512,58 +535,16 @@
}
return !result;
}
-
- /**
- * Focus a field either by YField or by id.
- *
- * @param field the field
- * @param fieldId the field id
- */
- private void focusField(YField field, String fieldId) {
- YView yView = null;
- YField yField = null;
- Iterator<EObject> iter = ((EObject) viewContext.getViewEditpart().getModel()).eAllContents();
- while (iter.hasNext()) {
- EObject eObject = iter.next();
- if(eObject instanceof YStrategyLayout) {
- YStrategyLayout yLayout = (YStrategyLayout)eObject;
- yView = yLayout.getView();
- }
- if (eObject instanceof YField) {
- if(eObject instanceof YFocusable && ((YField) eObject).isVisible() && ((YField) eObject).isEditable() && ((YField) eObject).isEnabled()) {
- yField = (YField) eObject;
- // find field by id
- if(fieldId != null) {
- if(yField.getId().equals(fieldId)) {
- break;
- }
- } else {
- // either find first field focusable or the clicked field if not null
- if(field == null || field.equals(yField)) {
- break;
- }
- }
- }
- }
- }
- if(yView != null && yField != null) {
- yView.setCurrentFocus(yField);
- }
-
- }
@Focus
public void setFocus() {
if(viewContext != null && mPart != null) {
- YField clickedField = null;
+ String fieldId = null;
LayoutClickEvent event = mPart.getContext().get(LayoutClickEvent.class);
- if(event != null) {
- EObject element = associationService.getModelElement(event.getClickedComponent());
- if(element instanceof YField) {
- clickedField = (YField)element;
- }
+ if(event != null && event.getClickedComponent() instanceof UI) {
+ fieldId = event.getClickedComponent().getId();
}
- focusField(clickedField, null);
+ focusingStrategy.focusField(yView, fieldId);
}
}
@@ -629,7 +610,6 @@
MPerspective mPersp = mPart.getContext().get(MPerspective.class);
for (Field field : DtoUtils.getOwnerDomainReferences(newDto.getClass())) {
if (mPersp != null) {
- boolean found = false;
// look in dialog's contexts
List<IViewContext> contexts = ecviewContainer.getECViews(mPersp);
for (IViewContext context : contexts) {
@@ -645,21 +625,18 @@
Object beanCopy = ownerService.get(idVal);
if(beanCopy != null) {
DtoUtils.setValue(newDto, field.getName(), beanCopy);
- found = true;
}
}
}
}
// look in context for selection
- if(!found) {
- String key = EntityUtils.getQualifiedEntityNameForQualifiedDtoName(field.getType().getName())+"."+DtoUtils.getIdField(field.getType()).getName();
- Object idObj = SelectionStore.getSelectionFromPerspectiveContext(mPart, key);
- if(idObj != null) {
- IDTOService<? extends Object> ownerService = DtoServiceAccess.getService(field.getType());
- Object beanCopy = ownerService.get(idObj);
- if(beanCopy != null) {
- DtoUtils.setValue(newDto, field.getName(), beanCopy);
- }
+ String key = EntityUtils.getQualifiedEntityNameForQualifiedDtoName(field.getType().getName())+"."+DtoUtils.getIdField(field.getType()).getName();
+ Object idObj = SelectionStore.getSelectionFromPerspectiveContext(mPart, key);
+ if(!(idObj instanceof List<?>) && idObj != null) {
+ IDTOService<? extends Object> ownerService = DtoServiceAccess.getService(field.getType());
+ Object beanCopy = ownerService.get(idObj);
+ if(beanCopy != null) {
+ DtoUtils.setValue(newDto, field.getName(), beanCopy);
}
}
}
@@ -807,21 +784,6 @@
}
- private boolean hasSupertype(UiBeanSlot slot, Class<?> clz) {
- SuperTypeCollector collector = new SuperTypeCollector();
- Set<String> result = new LinkedHashSet<>();
- collector.collectSuperTypes(slot.getJvmType(), new SuperTypeCollector.SuperTypeAcceptor() {
- @Override
- public boolean accept(JvmTypeReference superType, int distance) {
- if(superType.getQualifiedName().equals(clz.getName())) {
- result.add(superType.getQualifiedName());
- }
- return true;
- }
- });
- return !result.isEmpty();
- }
-
/**
* Creates the rendering parameters.
*
@@ -844,22 +806,22 @@
@Override
public void beforeUiRendering(IContext viewContext) {
for(UiBeanSlot slot : dialogModel.getUiView().getBeanSlots()) {
- if(hasSupertype(slot, IDto.class)) {
+ if(dslMetadataService.hasSupertype(slot.getJvmType(), IDto.class)) {
Class<?> dtoClass = dslMetadataService.getClass(slot.getJvmType().getQualifiedName(), "dto");
viewContext.createBeanSlot(slot.getName(), dtoClass).setValue(dslMetadataService.getClassInstance(dtoClass, "dto"));
- } else if(hasSupertype(slot, IStateMachineParticipant.class) || hasSupertype(slot, IPeripheral.class)) {
+ } else if(dslMetadataService.hasSupertype(slot.getJvmType(), IStateMachineParticipant.class) || dslMetadataService.hasSupertype(slot.getJvmType(), IPeripheral.class)) {
Class<?> participantClass = dslMetadataService.getClass(slot.getJvmType().getQualifiedName(), "statemachine");
IStateMachineParticipant participantInstance = (IStateMachineParticipant)dslMetadataService.getClassInstance(participantClass, "statemachine");
participantInstance.setLocale(user.getLocale());
viewContext.createBeanSlot(slot.getName(), participantClass).setValue(participantInstance);
- } else if(hasSupertype(slot, IStateMachine.class)) {
+ } else if(dslMetadataService.hasSupertype(slot.getJvmType(), IStateMachine.class)) {
Class<?> statemachineClass = dslMetadataService.getClass(slot.getJvmType().getQualifiedName(), "statemachine");
IStateMachine statemachineInstance = (IStateMachine)dslMetadataService.getClassInstance(statemachineClass, "statemachine");
statemachineInstance.setLocale(user.getLocale());
statemachineInstance.setUser(user);
statemachineInstance.setEclipseContext(eclipseContext);
viewContext.createBeanSlot(slot.getName(), statemachineClass).setValue(statemachineInstance);
- } else if(hasSupertype(slot, IBlobConverter.class)) {
+ } else if(dslMetadataService.hasSupertype(slot.getJvmType(), IBlobConverter.class)) {
viewContext.createBeanSlot(slot.getName(), BlobConverter.class).setValue(new BlobConverter(blobService));
}
}
@@ -874,12 +836,12 @@
@Override
public void afterBind(IContext context) {
for(UiBeanSlot slot : dialogModel.getUiView().getBeanSlots()) {
- if(hasSupertype(slot, IStateMachineParticipant.class)) {
+ if(dslMetadataService.hasSupertype(slot.getJvmType(), IStateMachineParticipant.class)) {
((IStateMachineParticipant)context.getBeanSlot(slot.getName()).getValue()).init();
}
- if(hasSupertype(slot, IDataProvider.class)) {
+ if(dslMetadataService.hasSupertype(slot.getJvmType(), IDataProvider.class)) {
for(UiBeanSlot innerslot : dialogModel.getUiView().getBeanSlots()) {
- if(hasSupertype(innerslot, IDto.class)) {
+ if(dslMetadataService.hasSupertype(innerslot.getJvmType(), IDto.class)) {
if (context.getBeanSlot(innerslot.getName()) != null) {
((IDataProvider)context.getBeanSlot(slot.getName()).getValue()).addDatasource(innerslot.getName(), context.getBeanSlot(innerslot.getName()).getValueType());
}
@@ -889,7 +851,7 @@
}
// at the very end - start the statemachines
for(UiBeanSlot slot : dialogModel.getUiView().getBeanSlots()) {
- if(hasSupertype(slot, IStateMachine.class)) {
+ if(dslMetadataService.hasSupertype(slot.getJvmType(), IStateMachine.class)) {
((IStateMachine)context.getBeanSlot(slot.getName()).getValue()).start();
}
}
@@ -1065,46 +1027,19 @@
makeNew();
break;
case DIALOG_ACTION_SAVE_AS_NEW:
- DTO newDto = (DTO) DtoUtils.copyDto(viewContext.getBean(IViewContext.MAIN_BEAN_SLOT));
- if(validate(newDto)) {
- executeDialogFunction("pre save", preSaveMethod, newDto);
- dtoService.update(newDto);
- newDto = dtoService.reload(newDto);
- executeDialogFunction("post save", postSaveMethod, newDto);
- updateBindings(newDto);
- setNewCreatedDto(false);
- Notification.show(dslMetadataService.translate(user.getLocale().toLanguageTag(), "savedas"),Notification.Type.HUMANIZED_MESSAGE);
- }
+ actionSaveAsNew();
break;
case DIALOG_ACTION_SAVE_AND_NEW:
+ actionSaveAndNew();
+ break;
case DIALOG_ACTION_SAVE:
- DTO savedDto = (DTO) viewContext.getBean(IViewContext.MAIN_BEAN_SLOT);
- if(validate(savedDto)) {
- executeDialogFunction("pre save", preSaveMethod, savedDto);
- dtoService.update(savedDto);
- newDto = dtoService.reload(savedDto);
- executeDialogFunction("post save", postSaveMethod, newDto);
- if(enumId == DialogActionEnum.DIALOG_ACTION_SAVE_AND_NEW) {
- if(lastBaseDto != null) {
- createNew(lastBaseDto);
- } else {
- makeNew();
- }
- Notification.show(dslMetadataService.translate(user.getLocale().toLanguageTag(), "savedandnew"),Notification.Type.HUMANIZED_MESSAGE);
- } else {
- updateBindings(newDto);
- setNewCreatedDto(false);
- Notification.show(dslMetadataService.translate(user.getLocale().toLanguageTag(), "saved"),Notification.Type.HUMANIZED_MESSAGE);
- }
- }
+ actionSave();
break;
case DIALOG_ACTION_DELETE:
showQueryDeleteDialog();
break;
case DIALOG_ACTION_CANCEL:
- DTO reloadedDto = dtoService.reload((DTO) viewContext.getBean(IViewContext.MAIN_BEAN_SLOT));
- setNewCreatedDto(reloadedDto != null);
- updateBindings(reloadedDto);
+ actionCancel();
break;
}
} else if (id instanceof UIActionEnum) {
@@ -1126,23 +1061,73 @@
}
}
- private void executeDialogFunction(String what, Method method, Object dto) {
+ private void actionCancel() {
+ DTO reloadedDto = dtoService.reload((DTO) viewContext.getBean(IViewContext.MAIN_BEAN_SLOT));
+ setNewCreatedDto(reloadedDto == null);
+ updateBindings(reloadedDto);
+ }
+
+ private void actionSave() {
+ DTO savedDto = (DTO) viewContext.getBean(IViewContext.MAIN_BEAN_SLOT);
+ if(validate(savedDto)) {
+ executeDialogFunction("pre save", preSaveMethod, savedDto);
+ dtoService.update(savedDto);
+ DTO newDto = dtoService.reload(savedDto);
+ executeDialogFunction("post save", postSaveMethod, newDto);
+ updateBindings(newDto);
+ setNewCreatedDto(false);
+ Notification.show(dslMetadataService.translate(user.getLocale().toLanguageTag(), "saved"),Notification.Type.HUMANIZED_MESSAGE);
+ }
+ }
+
+ private void actionSaveAndNew() {
+ DTO savedDto = (DTO) viewContext.getBean(IViewContext.MAIN_BEAN_SLOT);
+ if(validate(savedDto)) {
+ executeDialogFunction("pre save", preSaveMethod, savedDto);
+ dtoService.update(savedDto);
+ DTO newDto = dtoService.reload(savedDto);
+ executeDialogFunction("post save", postSaveMethod, newDto);
+ if(lastBaseDto != null) {
+ createNew(lastBaseDto);
+ } else {
+ makeNew();
+ }
+ Notification.show(dslMetadataService.translate(user.getLocale().toLanguageTag(), "savedandnew"),Notification.Type.HUMANIZED_MESSAGE);
+ }
+ }
+
+ private void actionSaveAsNew() {
+ DTO newDto = (DTO) DtoUtils.copyDto(viewContext.getBean(IViewContext.MAIN_BEAN_SLOT));
+ if(validate(newDto)) {
+ executeDialogFunction("pre save", preSaveMethod, newDto);
+ dtoService.update(newDto);
+ newDto = dtoService.reload(newDto);
+ executeDialogFunction("post save", postSaveMethod, newDto);
+ updateBindings(newDto);
+ setNewCreatedDto(false);
+ Notification.show(dslMetadataService.translate(user.getLocale().toLanguageTag(), "savedas"),Notification.Type.HUMANIZED_MESSAGE);
+ }
+ }
+
+ private boolean executeDialogFunction(String what, Method method, Object obj) {
if(method != null) {
Boolean retVal = false;
Exception ex = null;
try {
- retVal = (Boolean) method.invoke(dialogFunctionGroup, dto, renderingParams);
+ retVal = (Boolean) method.invoke(dialogFunctionGroup, obj, eclipseContext);
} catch (IllegalAccessException | IllegalArgumentException | InvocationTargetException e) {
ex = e;
}
if(!retVal) {
- String message = what+" "+dialogModel.getPostSave().getName()+" failed";
+ String message = what+" "+method.getName()+" failed";
if(ex != null) {
message += " due to exception " + ex.getCause();
}
Notification.show(message, Type.ERROR_MESSAGE);
+ return false;
}
}
+ return true;
}
private void handleSelectEvent(EventDispatcherEvent event) {
@@ -1243,7 +1228,7 @@
String partId = (String) event.getProperty(IE4Topics.PartEvents.PROP_MPART_ID);
String fieldId = (String) event.getProperty(IE4Topics.PartEvents.PROP_FIELD_ID);
if(mPart.getElementId().equals(partId)) {
- focusField(null, fieldId);
+ focusingStrategy.focusField(yView, fieldId);
}
}
};
@@ -1353,7 +1338,7 @@
public void setInput(Object dto) {
this.dto = (Class<?>) dto;
if (dto != null && viewContext != null) {
- dtoService = (IDTOServiceWithMutablePersistence<DTO>) DtoServiceAccess.getService(this.dto);
+ dtoService = (IDTOService<DTO>) DtoServiceAccess.getService(this.dto);
DTO persistentDto = dtoService.get(DtoUtils.getIdValue(dto));
viewContext.setBean(IViewContext.MAIN_BEAN_SLOT, persistentDto);
}
@@ -1470,4 +1455,14 @@
public IBlobService getBlobService() {
return blobService;
}
+
+ @Override
+ public void clicked(YButton yButton) {
+ // only if the click is for this instance
+ for(String tag:yButton.getTags()) {
+ if(uuid.equals(tag)) {
+ actionSaveAndNew();
+ }
+ }
+ }
}
diff --git a/org.eclipse.osbp.vaaclipse.addons.softwarefactory/src/org/eclipse/osbp/vaaclipse/addons/softwarefactory/perspective/KanbanView.java b/org.eclipse.osbp.vaaclipse.addons.softwarefactory/src/org/eclipse/osbp/vaaclipse/addons/softwarefactory/perspective/KanbanView.java
index 4087f5b..0ce1153 100644
--- a/org.eclipse.osbp.vaaclipse.addons.softwarefactory/src/org/eclipse/osbp/vaaclipse/addons/softwarefactory/perspective/KanbanView.java
+++ b/org.eclipse.osbp.vaaclipse.addons.softwarefactory/src/org/eclipse/osbp/vaaclipse/addons/softwarefactory/perspective/KanbanView.java
@@ -29,10 +29,6 @@
public class KanbanView
implements IUser.UserLocaleListener, IE4Dialog {
- /**
- *
- */
- private static final long serialVersionUID = 1L;
@Inject
MPart part;
@@ -107,9 +103,9 @@
dialogWindow.center();
}
- private void refreshCard(Object dto){
- kanbanBoard.refreshCard(dto);
- }
+// private void refreshCard(Object dto){
+// kanbanBoard.refreshCard(dto);
+// }
@PostConstruct
public void activate() {
diff --git a/org.eclipse.osbp.vaaclipse.addons.softwarefactory/src/org/eclipse/osbp/vaaclipse/addons/softwarefactory/perspective/PerspectiveProvider.java b/org.eclipse.osbp.vaaclipse.addons.softwarefactory/src/org/eclipse/osbp/vaaclipse/addons/softwarefactory/perspective/PerspectiveProvider.java
index 7e9dbf2..b661cc2 100644
--- a/org.eclipse.osbp.vaaclipse.addons.softwarefactory/src/org/eclipse/osbp/vaaclipse/addons/softwarefactory/perspective/PerspectiveProvider.java
+++ b/org.eclipse.osbp.vaaclipse.addons.softwarefactory/src/org/eclipse/osbp/vaaclipse/addons/softwarefactory/perspective/PerspectiveProvider.java
@@ -15,6 +15,9 @@
*/
package org.eclipse.osbp.vaaclipse.addons.softwarefactory.perspective;
+import java.net.MalformedURLException;
+import java.net.URI;
+import java.net.URL;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.LinkedList;
@@ -69,6 +72,7 @@
import org.eclipse.osbp.dsl.common.datatypes.IDto;
import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage;
import org.eclipse.osbp.eventbroker.EventBrokerMsg;
+import org.eclipse.osbp.preferences.ProductConfiguration;
import org.eclipse.osbp.runtime.common.event.EventDispatcherEvent;
import org.eclipse.osbp.runtime.common.event.EventDispatcherEvent.EventDispatcherCommand;
import org.eclipse.osbp.runtime.common.event.EventDispatcherEvent.EventDispatcherDataTag;
@@ -79,7 +83,9 @@
import org.eclipse.osbp.ui.api.themes.IThemeResourceService;
import org.eclipse.osbp.ui.api.themes.IThemeResourceService.ThemeResourceType;
import org.eclipse.osbp.ui.api.user.IUser;
+import org.eclipse.osbp.ui.api.useraccess.IUserAccessService;
import org.eclipse.osbp.utils.vaadin.bpmn.BpmnView;
+import org.eclipse.osbp.utils.vaadin.saiku.SaikuView;
import org.eclipse.osbp.vaaclipse.addons.softwarefactory.maintoolbar.IMainToolbarProvider;
import org.eclipse.osbp.vaaclipse.addons.softwarefactory.welcome.WelcomeView;
import org.eclipse.osbp.vaaclipse.publicapi.authentication.AuthenticationConstants;
@@ -117,6 +123,7 @@
import org.eclipse.osbp.xtext.perspective.PerspectivePart;
import org.eclipse.osbp.xtext.perspective.PerspectivePartStack;
import org.eclipse.osbp.xtext.perspective.PerspectiveReport;
+import org.eclipse.osbp.xtext.perspective.PerspectiveSaiku;
import org.eclipse.osbp.xtext.perspective.PerspectiveSashContainer;
import org.eclipse.osbp.xtext.perspective.PerspectiveSearch;
import org.eclipse.osbp.xtext.perspective.PerspectiveSelection;
@@ -139,6 +146,7 @@
import org.osgi.service.event.EventHandler;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import com.vaadin.server.Page;
/**
* The Class PerspectiveProvider. Available as injectable service to create and
@@ -217,6 +225,9 @@
/** The perspective tasks. */
private Map<BPMTaskSummary, String> perspectiveTasks = new HashMap<>();
+ @Inject
+ private IUserAccessService userAccessService;
+
/**
* Inits the PerspectiveSupport.
*/
@@ -326,7 +337,13 @@
perspective.getTags().add(IPerspectiveProvider.E4Constants.TAG_REMOVE_ON_CLOSE);
perspective.getTags().add(IPerspectiveProvider.E4Constants.TAG_NOT_IN_OPEN_PERSPECTIVE_DIALOG);
- perspective.setElementId(PerspectiveProvider.toPerspectiveElementId(perspectiveId));
+ String newPerspectiveId = toPerspectiveElementId(perspectiveId);
+ int offset = 0;
+ while(isPerspectiveIdAlreadyInUse(stack, newPerspectiveId)){
+ newPerspectiveId = toPerspectiveElementId(perspectiveId + offset++);
+ }
+
+ perspective.setElementId(newPerspectiveId);
perspective.setLabel(perspectiveModel.getName());
perspective.setVisible(true);
perspective.setToBeRendered(true);
@@ -356,6 +373,18 @@
}
return perspective;
}
+
+ private boolean isPerspectiveIdAlreadyInUse(MPerspectiveStack stack, String perspectiveId){
+ if(stack != null && stack.getChildren() != null && !stack.getChildren().isEmpty()
+ && perspectiveId != null && !perspectiveId.isEmpty()){
+ for(MPerspective perspective : stack.getChildren()){
+ if(perspective.getElementId().equals(perspectiveId)){
+ return true;
+ }
+ }
+ }
+ return false;
+ }
/**
* Register context.
@@ -374,22 +403,26 @@
String operativeDtoFqn = null;
List<IDto> operativeDtos = null;
- if (taskClient != null) {
- workloadDtoFqn = taskClient.getWorkloadDtoFqn(perspectiveFound.taskSummary);
- workloadDto = taskClient.getWorkloadDto(perspectiveFound.taskSummary);
- if (perspectiveFound.blipTask != null) {
- startInfo = taskProvider.getStartInfo(perspectiveFound.taskSummary);
- }
+ if (taskClient != null && perspectiveFound.blipTask != null) {
+ startInfo = taskProvider.getStartInfo(perspectiveFound.taskSummary);
if (startInfo != null) {
task = startInfo.getWorkloadMofifiableBpmItemForBlipId(perspectiveFound.blipTask.getName());
- }
- if (task != null) {
- operativeDtos = task.getOperativeDtos(workloadDto);
- operativeDtoClass = task.getOperativeDtoClass();
- if (operativeDtoClass != null) {
- operativeDtoFqn = operativeDtoClass.getCanonicalName();
- } else {
- operativeDtoClass = null;
+ if (task != null) {
+ workloadDtoFqn = taskClient.getWorkloadDtoFqn(perspectiveFound.taskSummary);
+ workloadDto = taskClient.getWorkloadDto(perspectiveFound.taskSummary);
+ if(workloadDtoFqn == null || workloadDto == null) {
+ workloadDtoFqn = startInfo.getWorkloadDtoFqn();
+ workloadDto = startInfo.createWorkloadDto();
+ taskClient.setWorkloadDtoFqn(perspectiveFound.taskSummary, workloadDtoFqn);
+ taskClient.setWorkloadDto(perspectiveFound.taskSummary, workloadDto);
+ }
+ operativeDtos = task.getOperativeDtos(workloadDto);
+ operativeDtoClass = task.getOperativeDtoClass();
+ if (operativeDtoClass != null) {
+ operativeDtoFqn = operativeDtoClass.getCanonicalName();
+ } else {
+ operativeDtoClass = null;
+ }
}
}
}
@@ -588,9 +621,10 @@
((MPartStack) parent).getChildren().add(part);
}
if (partModel.getView() != null) {
+ String contributionURI = getContributionURI(part, partModel);
log.trace("set contribution URI for part {} to {} ", part.getElementId(),
- getContributionURI(part, partModel));
- part.setContributionURI(getContributionURI(part, partModel));
+ contributionURI);
+ part.setContributionURI(contributionURI);
}
// DON´T MOVE THE FOLLOWING CODE LINES !!!!
@@ -672,6 +706,10 @@
String className = BrowserView.class.getCanonicalName();
Bundle bundle = FrameworkUtil.getBundle(BrowserView.class);
return E4Constants.BUNDLE_PROTOCOL_SCHEME + "://" + bundle.getSymbolicName() + "/" + className;
+ } else if (viewModel instanceof PerspectiveSaiku) {
+ String className = SaikuView.class.getCanonicalName();
+ Bundle bundle = FrameworkUtil.getBundle(SaikuView.class);
+ return E4Constants.BUNDLE_PROTOCOL_SCHEME + "://" + bundle.getSymbolicName() + "/" + className;
}
else {
return null;
@@ -687,15 +725,17 @@
* - the current element which is traversed
*/
private void addElement(MElementContainer<?> parent, EObject element) {
- if (element instanceof PerspectiveSashContainer) {
- log.trace("{}","add sashcontainer");
- addElementPerspectiveSashContainer(parent, element);
- } else if (element instanceof PerspectivePartStack) {
- log.trace("{}","add partstack");
- addElementPerspectivePartStack(parent, element);
- } else if (element instanceof PerspectivePart) {
- log.trace("{}","add part");
- addElementPerspectivePart(parent, element);
+ if(dslMetadataService.isPerspectiveElementAuthorized(element, userAccessService)) {
+ if (element instanceof PerspectiveSashContainer) {
+ log.trace("{}","add sashcontainer");
+ addElementPerspectiveSashContainer(parent, element);
+ } else if (element instanceof PerspectivePartStack) {
+ log.trace("{}","add partstack");
+ addElementPerspectivePartStack(parent, element);
+ } else if (element instanceof PerspectivePart) {
+ log.trace("{}","add part");
+ addElementPerspectivePart(parent, element);
+ }
}
}
@@ -734,7 +774,7 @@
String className = getFQN(viewModel)+"Topology";
return dslMetadataService.getClassURI(className, IPerspectiveProvider.PerspectiveViewType.TOPOLOGY);
} else if (viewModel instanceof PerspectiveDialog) {
- part.getTransientData().put("dialogModel", ((PerspectiveDialog) viewModel).getRef());
+ part.getTransientData().put(IPerspectiveProvider.TRANSIENT_DIALOG_MODEL, ((PerspectiveDialog) viewModel).getRef());
return dslMetadataService.getClassURI(DialogProvider.class.getCanonicalName(), IPerspectiveProvider.PerspectiveViewType.DIALOG);
} else if (viewModel instanceof PerspectiveDataInterchange) {
String className = getFQN(viewModel)+"TriggerView";
@@ -746,6 +786,10 @@
String className = WelcomeView.class.getCanonicalName();
Bundle bundle = FrameworkUtil.getBundle(WelcomeView.class);
return E4Constants.BUNDLE_PROTOCOL_SCHEME + "://" + bundle.getSymbolicName() + "/" + className;
+ } else if (viewModel instanceof PerspectiveSaiku) {
+ String className = SaikuView.class.getCanonicalName();
+ Bundle bundle = FrameworkUtil.getBundle(SaikuView.class);
+ return E4Constants.BUNDLE_PROTOCOL_SCHEME + "://" + bundle.getSymbolicName() + "/" + className;
} else if (viewModel instanceof PerspectiveSearch) {
part.getTransientData().put(IPerspectiveProvider.FilterConstants.FILTER_DTO_CLASS,
((PerspectiveSearch) viewModel).getDtoRef());
@@ -767,8 +811,19 @@
Bundle bundle = FrameworkUtil.getBundle(KanbanView.class);
return E4Constants.BUNDLE_PROTOCOL_SCHEME + "://" + bundle.getSymbolicName() + "/" + className;
} else if (viewModel instanceof PerspectiveBrowser) {
- part.getTransientData().put(IPerspectiveProvider.BrowserConstants.URL,
- ((PerspectiveBrowser) viewModel).getUrl());
+ String url = "";
+ if (((PerspectiveBrowser) viewModel).isCubeView()){
+ int port = ProductConfiguration.prefs().getCubeViewPort();
+ URI location = Page.getCurrent().getLocation();
+ try {
+ url = new URL(location.getScheme(), location.getHost(), port, "").toString();
+ } catch (MalformedURLException e) {
+ log.error("cube view URL is malformed!", e);
+ }
+ } else {
+ url = ((PerspectiveBrowser) viewModel).getUrl();
+ }
+ part.getTransientData().put(IPerspectiveProvider.BrowserConstants.URL, url);
String className = BrowserView.class.getCanonicalName();
Bundle bundle = FrameworkUtil.getBundle(BrowserView.class);
return E4Constants.BUNDLE_PROTOCOL_SCHEME + "://" + bundle.getSymbolicName() + "/" + className;
@@ -1063,7 +1118,7 @@
if (stack != null) {
// bring to top if already contained in model
for (MPerspective perspective : stack.getChildren()) {
- if ((PerspectiveProvider.toPerspectiveElementId(elementId)).equals(perspective.getElementId())) {
+ if ((toPerspectiveElementId(elementId)).equals(perspective.getElementId())) {
modelService.bringToTop(perspective);
return;
}
@@ -1073,7 +1128,7 @@
perspective.getTags().add(IPerspectiveProvider.E4Constants.TAG_REMOVE_ON_CLOSE);
perspective.getTags().add(IPerspectiveProvider.E4Constants.TAG_NOT_IN_OPEN_PERSPECTIVE_DIALOG);
- perspective.setElementId(PerspectiveProvider.toPerspectiveElementId(elementId));
+ perspective.setElementId(toPerspectiveElementId(elementId));
perspective.setLabel(labelName);
perspective.setVisible(true);
perspective.setToBeRendered(true);
@@ -1084,8 +1139,7 @@
perspective.getChildren().add(part);
String className = clazz.getCanonicalName();
Bundle bundle = FrameworkUtil.getBundle(clazz);
- String contributionURI = E4Constants.BUNDLE_PROTOCOL_SCHEME + "://" + bundle.getSymbolicName() + "/"
- + className;
+ String contributionURI = E4Constants.BUNDLE_PROTOCOL_SCHEME + "://" + bundle.getSymbolicName() + "/"+ className;
part.setContributionURI(contributionURI);
stack.getChildren().add(perspective);
stack.setSelectedElement(perspective);
@@ -1143,7 +1197,7 @@
// 02/28/2018
if (summary != null) {
for (MPerspective perspective : stack.getChildren()) {
- if ((PerspectiveProvider.toPerspectiveElementId(perspectiveFound.fqn))
+ if ((toPerspectiveElementId(perspectiveFound.fqn))
.equals(perspective.getElementId())) {
modelService.bringToTop(perspective);
return;
diff --git a/org.eclipse.osbp.vaaclipse.addons.softwarefactory/src/org/eclipse/osbp/vaaclipse/addons/softwarefactory/service/OSBPServiceAddon.java b/org.eclipse.osbp.vaaclipse.addons.softwarefactory/src/org/eclipse/osbp/vaaclipse/addons/softwarefactory/service/OSBPServiceAddon.java
index d54cac8..673b118 100644
--- a/org.eclipse.osbp.vaaclipse.addons.softwarefactory/src/org/eclipse/osbp/vaaclipse/addons/softwarefactory/service/OSBPServiceAddon.java
+++ b/org.eclipse.osbp.vaaclipse.addons.softwarefactory/src/org/eclipse/osbp/vaaclipse/addons/softwarefactory/service/OSBPServiceAddon.java
@@ -105,16 +105,12 @@
@Optional
private IDashboardProvider dashboardProvider;
- private IEclipseContext eclipseContext;
-
protected Map<String, MessageDialog> messageDialogs = new HashMap<>();
protected Locale addonLocale;
@PostConstruct
void init(IEclipseContext context) {
- this.eclipseContext = context;
-
initApplicationLayoutModel();
BundleContext bundleContext = FrameworkUtil.getBundle(getClass()).getBundleContext();
@@ -124,8 +120,9 @@
persistenceService.registerPersistenceExceptionNotification(this);
}
- IEventDispatcher clientDispatcher = ContextInjectionFactory.make(EventDispatcher.class, context);
- context.set(IEventDispatcher.class, clientDispatcher);
+// IEventDispatcher clientDispatcher = ContextInjectionFactory.make(EventDispatcher.class, context);
+// context.set(IEventDispatcher.class, clientDispatcher);
+ addToContexts(context, bundleContext, IEventDispatcher.class, EventDispatcher.class, false);
addToContexts(context, bundleContext, ICommonUIHelper.class, CommonUIHelper.class, false);
IThemeResourceService themeResourceService = addToContexts(context, bundleContext, IThemeResourceService.class, ThemeResourceService.class, false);
@@ -166,15 +163,7 @@
});
if (perspectiveProvider != null) {
-// if(dslMetadataService.isOsbee()) {
-// if(dashboardProvider != null) {
-// dashboardProvider.createDashboard(eclipseContext);
-// } else {
-// throw new RuntimeException("org.osbee.dashboard plugin is missing");
-// }
-// } else {
- perspectiveProvider.openPerspective("welcomeScreen", "Welcome", WelcomeView.class);
-// }
+ perspectiveProvider.openPerspective(IPerspectiveProvider.WELCOME_SCREEN_ID, "Welcome", WelcomeView.class);
}
}
@@ -196,16 +185,8 @@
bindingTable.setBindingContext(bindingContext);
appModel.getBindingTables().add(bindingTable);
- // create trimmed window
- MTrimmedWindow trimmedWindow = null;
- if (appModel.getChildren().isEmpty()) {
- trimmedWindow = BasicFactoryImpl.eINSTANCE.createTrimmedWindow();
- trimmedWindow.setToBeRendered(true);
- trimmedWindow.setVisible(true);
- appModel.getChildren().add(trimmedWindow);
- } else {
- trimmedWindow = (MTrimmedWindow) appModel.getChildren().get(0);
- }
+ // a trimmed window must come with the application
+ MTrimmedWindow trimmedWindow = (MTrimmedWindow) appModel.getChildren().get(0);
trimmedWindow.setLabel(appContext.getBrandingName());
for (ICommandsProvider commandsProvider : OSBPCommandsBinder.getCommandsProviders()) {
diff --git a/org.eclipse.osbp.vaaclipse.addons.softwarefactory/src/org/eclipse/osbp/vaaclipse/addons/softwarefactory/service/OSBPTranslationService.java b/org.eclipse.osbp.vaaclipse.addons.softwarefactory/src/org/eclipse/osbp/vaaclipse/addons/softwarefactory/service/OSBPTranslationService.java
index b8d5766..4bfd834 100644
--- a/org.eclipse.osbp.vaaclipse.addons.softwarefactory/src/org/eclipse/osbp/vaaclipse/addons/softwarefactory/service/OSBPTranslationService.java
+++ b/org.eclipse.osbp.vaaclipse.addons.softwarefactory/src/org/eclipse/osbp/vaaclipse/addons/softwarefactory/service/OSBPTranslationService.java
@@ -15,7 +15,6 @@
*/
package org.eclipse.osbp.vaaclipse.addons.softwarefactory.service;
-import java.lang.reflect.Array;
import java.util.Arrays;
import java.util.List;
import java.util.ResourceBundle;
diff --git a/org.eclipse.osbp.vaaclipse.addons.softwarefactory/src/org/eclipse/osbp/vaaclipse/addons/softwarefactory/service/ThemeResourceService.java b/org.eclipse.osbp.vaaclipse.addons.softwarefactory/src/org/eclipse/osbp/vaaclipse/addons/softwarefactory/service/ThemeResourceService.java
index 801aac6..2593666 100644
--- a/org.eclipse.osbp.vaaclipse.addons.softwarefactory/src/org/eclipse/osbp/vaaclipse/addons/softwarefactory/service/ThemeResourceService.java
+++ b/org.eclipse.osbp.vaaclipse.addons.softwarefactory/src/org/eclipse/osbp/vaaclipse/addons/softwarefactory/service/ThemeResourceService.java
@@ -63,7 +63,6 @@
private ThemeEngine themeEngine;
private ThemeManager themeManager;
- private IApplicationContext appContext;
private List<String> cssUris = null;
private String resourcePath = null;
@@ -72,7 +71,6 @@
@Override
public void init(IApplicationContext appContext, Object themeEngine, Object themeManager) {
- this.appContext = appContext;
this.themeEngine = (ThemeEngine)themeEngine;
this.themeManager = (ThemeManager)themeManager;
reset();
@@ -93,7 +91,7 @@
return null;
}
}
-
+
@Override
public Resource getThemeResource(String resourceID, ThemeResourceType themeResourceType) {
if (resourceID != null) {
@@ -134,6 +132,11 @@
}
return stream;
}
+
+ @Override
+ public InputStream getThemeResourceInputStream(String resourceID, ThemeResourceType themeResourceType) {
+ return getThemeResourceInputStream(getThemeURI(resourceID, themeResourceType));
+ }
@Override
public String getThemeResourceHTML(String subject, Locale locale) {
@@ -148,4 +151,20 @@
return htmlLoader.toString().replace("$SUBJEC$T", subject).replace("$THEME$", theme).replace("$PATH$", path).replace("$LOCALETAG$", localeTag);
}
+ @Override
+ public String getThemeResourceRelativePath(String resourceID, ThemeResourceType themeResourceType) {
+ if (resourceID != null) {
+ String relativePath = "./"+resourcePath.substring(resourcePath.indexOf("VAADIN"));
+ return relativePath + getRelativeResourePath(resourceID, themeResourceType);
+ } else {
+ return null;
+ }
+ }
+
+ @Override
+ public String getThemeResourceMxGraphPath() {
+ String theme = themeManager.getThemeId();
+ return "./VAADIN/themes/" + theme + "/mxGraph";
+ }
+
}
diff --git a/org.eclipse.osbp.vaaclipse.addons.softwarefactory/src/org/eclipse/osbp/vaaclipse/addons/softwarefactory/userfilter/UserFilterDialogProvider.java b/org.eclipse.osbp.vaaclipse.addons.softwarefactory/src/org/eclipse/osbp/vaaclipse/addons/softwarefactory/userfilter/UserFilterDialogProvider.java
index 6e88a83..6761211 100644
--- a/org.eclipse.osbp.vaaclipse.addons.softwarefactory/src/org/eclipse/osbp/vaaclipse/addons/softwarefactory/userfilter/UserFilterDialogProvider.java
+++ b/org.eclipse.osbp.vaaclipse.addons.softwarefactory/src/org/eclipse/osbp/vaaclipse/addons/softwarefactory/userfilter/UserFilterDialogProvider.java
@@ -52,7 +52,7 @@
import org.eclipse.osbp.jpa.services.filters.LCompare.Equal;
import org.eclipse.osbp.jpa.services.filters.LJoinFilter;
import org.eclipse.osbp.runtime.common.annotations.DtoUtils;
-import org.eclipse.osbp.runtime.common.filter.IDTOServiceWithMutablePersistence;
+import org.eclipse.osbp.runtime.common.filter.IDTOService;
import org.eclipse.osbp.runtime.common.filter.ILFilter;
import org.eclipse.osbp.runtime.common.types.IBundleSpace;
import org.eclipse.osbp.runtime.web.vaadin.common.data.BeanServiceLazyLoadingContainer;
@@ -230,7 +230,7 @@
try {
@SuppressWarnings("unchecked")
Class<IDto> dtoClass = (Class<IDto>) bundleSpace.forName(fqnDto);
- IDTOServiceWithMutablePersistence<IDto> service = (IDTOServiceWithMutablePersistence<IDto>) DtoServiceAccess
+ IDTOService<IDto> service = (IDTOService<IDto>) DtoServiceAccess
.getService(dtoClass);
StatefulDelegatingDtoSearchService<IDto> loadingService = new StatefulDelegatingDtoSearchService<>(
service, dtoClass);
@@ -335,7 +335,7 @@
// UserAccount
UserAccountDto userDto = (UserAccountDto) userField.getValue();
// create UserAccountDTOService
- IDTOServiceWithMutablePersistence<UserAccountFilterDto> service = (IDTOServiceWithMutablePersistence<UserAccountFilterDto>) DtoServiceAccess
+ IDTOService<UserAccountFilterDto> service = (IDTOService<UserAccountFilterDto>) DtoServiceAccess
.getService(UserAccountFilterDto.class);
// find all useraccountfilter elements with the reference to the
// providing user account id.
@@ -697,7 +697,7 @@
*/
// ---------- Helper Methods ------------
private void fillUsersComboBox() {
- IDTOServiceWithMutablePersistence<UserAccountDto> service = (IDTOServiceWithMutablePersistence<UserAccountDto>) DtoServiceAccess
+ IDTOService<UserAccountDto> service = (IDTOService<UserAccountDto>) DtoServiceAccess
.getService(UserAccountDto.class);
// getting all existing users.
diff --git a/org.eclipse.osbp.vaaclipse.addons.softwarefactory/src/org/eclipse/osbp/vaaclipse/addons/softwarefactory/welcome/WelcomeView.java b/org.eclipse.osbp.vaaclipse.addons.softwarefactory/src/org/eclipse/osbp/vaaclipse/addons/softwarefactory/welcome/WelcomeView.java
index ff62d6b..36f1b18 100644
--- a/org.eclipse.osbp.vaaclipse.addons.softwarefactory/src/org/eclipse/osbp/vaaclipse/addons/softwarefactory/welcome/WelcomeView.java
+++ b/org.eclipse.osbp.vaaclipse.addons.softwarefactory/src/org/eclipse/osbp/vaaclipse/addons/softwarefactory/welcome/WelcomeView.java
@@ -21,23 +21,16 @@
import javax.inject.Inject;
import org.eclipse.e4.core.contexts.IEclipseContext;
-import org.eclipse.e4.core.di.annotations.Optional;
import org.eclipse.e4.ui.model.application.MApplication;
-import org.eclipse.osbp.preferences.ProductConfiguration;
-import org.eclipse.osbp.ui.api.contextfunction.IDashboardProvider;
import org.eclipse.osbp.ui.api.themes.IThemeResourceService;
import org.eclipse.osbp.ui.api.user.IUser;
-import com.vaadin.event.LayoutEvents.LayoutClickEvent;
-import com.vaadin.event.LayoutEvents.LayoutClickListener;
import com.vaadin.server.ClientConnector;
import com.vaadin.server.ClientConnector.AttachEvent;
import com.vaadin.server.ClientConnector.DetachEvent;
-import com.vaadin.shared.MouseEventDetails.MouseButton;
import com.vaadin.shared.ui.label.ContentMode;
import com.vaadin.ui.AbstractComponent;
import com.vaadin.ui.Label;
-import com.vaadin.ui.RichTextArea;
import com.vaadin.ui.VerticalLayout;
public class WelcomeView implements IUser.UserLocaleListener, ClientConnector.DetachListener, ClientConnector.AttachListener {