| /* |
| * |
| * Copyright (c) 2011 - 2017 - Loetz GmbH & Co KG, 69115 Heidelberg, Germany |
| * |
| * All rights reserved. This program and the accompanying materials |
| * are made available under the terms of the Eclipse Public License v1.0 |
| * which accompanies this distribution, and is available at |
| * http://www.eclipse.org/legal/epl-v10.html |
| * |
| * Initial contribution: |
| * Loetz GmbH & Co. KG |
| * |
| */ |
| package org.eclipse.osbp.runtime.common.event; |
| |
| import java.util.List; |
| import java.util.Map; |
| import java.util.concurrent.CopyOnWriteArrayList; |
| |
| import org.eclipse.osgi.framework.eventmgr.CopyOnWriteIdentityMap; |
| |
| /** |
| * The Class EventDispatcherEvent. |
| */ |
| public class EventDispatcherEvent { |
| |
| /** |
| * The Enum EventDispatcherCommand. |
| */ |
| public enum EventDispatcherCommand { |
| /** something was selected. */ |
| SELECT, |
| /** something requested a refresh. */ |
| REFRESH, |
| /** The user saved. */ |
| SAVE, |
| /** The user deleted. */ |
| DELETE, |
| /** The user started an action. */ |
| ACTION, |
| /** Process finished so remove progressbar. */ |
| REMOVE_PROGRESSBAR |
| } |
| |
| /** |
| * The Enum EventDispatcherDataTag. |
| */ |
| public enum EventDispatcherDataTag { |
| /** The id. values are of type id or uuid */ |
| ID, |
| /** The id of the pressed action button */ |
| BUTTON_ID, |
| /** The id of an started human task (bpmn) */ |
| TASK_ID, |
| /** The list of objects. */ |
| LIST, |
| /** a filled dto object. */ |
| DTO |
| } |
| |
| /** The command. */ |
| private EventDispatcherCommand command; |
| |
| /** The sender class. */ |
| private String sender; |
| |
| /** The topic. */ |
| private String topic; |
| |
| /** The data. */ |
| private Map<EventDispatcherDataTag, Object> data = new CopyOnWriteIdentityMap<>(); |
| |
| /** |
| * Instantiates a new event dispatcher event. |
| * |
| * @param command the command |
| * @param topic the topic |
| */ |
| public EventDispatcherEvent(EventDispatcherCommand command, String topic, String sender) { |
| this.command = command; |
| this.topic = topic; |
| this.sender = sender; |
| } |
| |
| /** |
| * Gets the command. |
| * |
| * @return the command |
| */ |
| public EventDispatcherCommand getCommand() { |
| return command; |
| } |
| |
| /** |
| * Sets the command. |
| * |
| * @param command the new command |
| */ |
| public void setCommand(EventDispatcherCommand command) { |
| this.command = command; |
| } |
| |
| /** |
| * Gets the topic. |
| * |
| * @return the topic |
| */ |
| public String getTopic() { |
| return topic; |
| } |
| |
| /** |
| * Sets the topic. |
| * |
| * @param topic the new topic |
| */ |
| public void setTopic(String topic) { |
| this.topic = topic; |
| } |
| |
| /** |
| * Gets the data. |
| * |
| * @return the data |
| */ |
| public Map<EventDispatcherDataTag, Object> getData() { |
| return data; |
| } |
| |
| /** |
| * Sets the data. |
| * |
| * @param data the data |
| */ |
| public void setData(Map<EventDispatcherDataTag, Object> data) { |
| this.data = data; |
| } |
| |
| /** |
| * Adds the item data. |
| * |
| * @param tag the tag |
| * @param item the item |
| */ |
| @SuppressWarnings("unchecked") |
| public void addItem(EventDispatcherDataTag tag, Object item) { |
| if(tag == EventDispatcherDataTag.LIST) { |
| if(!data.containsKey(EventDispatcherDataTag.LIST)) { |
| data.put(EventDispatcherDataTag.LIST, new CopyOnWriteArrayList<String>()); |
| } |
| ((List<String>)data.get(EventDispatcherDataTag.LIST)).add((String)item); |
| } else { |
| data.put(tag, item); |
| } |
| } |
| |
| @SuppressWarnings("unchecked") |
| public void addData(List<IDualData> selectedData) { |
| if(!data.containsKey(EventDispatcherDataTag.LIST)) { |
| data.put(EventDispatcherDataTag.LIST, new CopyOnWriteArrayList<String>()); |
| } |
| for(IDualData dd : selectedData){ |
| ((List<String>)data.get(EventDispatcherDataTag.LIST)).add(dd.getSelectionValue()); |
| } |
| } |
| |
| /** |
| * Gets the sender. |
| * |
| * @return the sender id |
| */ |
| public String getSender() { |
| return sender; |
| } |
| |
| /** |
| * Sets the sender id. |
| * |
| * @param sender the new sender |
| */ |
| public void setSender(String sender) { |
| this.sender = sender; |
| } |
| } |