Open buchen opened 7 years ago
@Ragas13: Ich habe mal rumgespielt wie das mit dem SelectionService funktionieren könnte: siehe den patch.txt
Im Prinzip im SecurityListView einen neuen Listener hinzufügen:
@@ -180,6 +184,9 @@ public class SecurityListView extends AbstractListView implements ModificationLi
@Inject
private ExchangeRateProviderFactory factory;
+ @Inject
+ private ESelectionService selectionService;
+
private SecuritiesTable securities;
private TableViewer prices;
private TableViewer transactions;
@@ -365,6 +372,13 @@ public class SecurityListView extends AbstractListView implements ModificationLi
securities.addSelectionChangedListener(event -> onSecurityChanged(
(Security) ((IStructuredSelection) event.getSelection()).getFirstElement()));
+
+ securities.addSelectionChangedListener(event -> {
+ Map<Class<?>, Object> selection = new HashMap<>();
+ selection.put(Client.class, getClient());
+ selection.put(Security.class, ((IStructuredSelection) event.getSelection()).getFirstElement());
+ selectionService.setSelection(selection);
+ });
Damit die Injection funktioniert, muss man wohl noch im PortfolioPart den Selektion Service durchreichen:
+
+ @Inject
+ ESelectionService selectionService;
@PostConstruct
public void createComposite(Composite parent, MPart part)
@@ -527,6 +531,7 @@ public class PortfolioPart implements LoadClientThread.Callback
viewContext.set(Client.class, this.client);
viewContext.set(IPreferenceStore.class, this.preferenceStore);
viewContext.set(PortfolioPart.class, this);
+ viewContext.set(ESelectionService.class, selectionService);
Und dann konnte ich das in einem Handler auslesen:
@Execute
public void execute(@Named(IServiceConstants.ACTIVE_PART) MPart part,
- @Named(IServiceConstants.ACTIVE_SHELL) Shell shell)
+ @Named(IServiceConstants.ACTIVE_SHELL) Shell shell, ESelectionService selectionService)
{
Client client = MenuHelper.getActiveClient(part);
if (client == null)
return;
+
+
+ System.out.println(selectionService.getSelection());
+
Wie hier im Forum diskutiert ein Bookmark zu implementieren: https://forum.portfolio-performance.info/t/tastaturkuerzel-fuer-im-browser-oeffnen/1607?source_topic_id=1612
Ich denke man müsste