/******************************************************************************* * Copyright (c) 2007-2010, G. Weirich and Elexis * 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 * * Contributors: * G. Weirich - initial implementation * *******************************************************************************/ package ch.elexis.icpc.views; import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.Composite; import org.eclipse.ui.part.ViewPart; import ch.elexis.core.data.events.ElexisEvent; import ch.elexis.core.data.events.ElexisEventDispatcher; import ch.elexis.core.ui.events.ElexisUiEventListenerImpl; import ch.elexis.core.ui.actions.GlobalEventDispatcher; import ch.elexis.core.ui.actions.IActivationListener; import ch.elexis.data.Patient; import ch.elexis.data.PersistentObject; import ch.elexis.icpc.Encounter; import ch.elexis.core.ui.util.SWTHelper; public class EncounterView extends ViewPart implements IActivationListener { public static final String ID = "ch.elexis.icpc.encounterView"; private EncounterDisplay display; private final ElexisUiEventListenerImpl eeli_pat = new ElexisUiEventListenerImpl(Patient.class, ElexisEvent.EVENT_SELECTED) { @Override public void runInUi(ElexisEvent ev){ display.setEncounter(null); } }; private final ElexisUiEventListenerImpl eeli_enc = new ElexisUiEventListenerImpl(Encounter.class, ElexisEvent.EVENT_SELECTED) { @Override public void runInUi(ElexisEvent ev){ display.setEncounter((Encounter) ev.getObject()); } }; public EncounterView(){ // TODO Auto-generated constructor stub } @Override public void createPartControl(Composite parent){ parent.setLayout(new GridLayout()); display = new EncounterDisplay(parent); display.setLayoutData(SWTHelper.getFillGridData(1, true, 1, true)); GlobalEventDispatcher.addActivationListener(this, getViewSite().getPart()); } @Override public void dispose(){ GlobalEventDispatcher.removeActivationListener(this, getViewSite().getPart()); } @Override public void setFocus(){ // TODO Auto-generated method stub } public void activation(boolean mode){ } public void visible(boolean mode){ if (mode) { ElexisEventDispatcher.getInstance().addListeners(eeli_enc, eeli_pat); } else { ElexisEventDispatcher.getInstance().removeListeners(eeli_enc, eeli_pat); } } public void clearEvent(Class template){ // TODO Auto-generated method stub } public void selectionEvent(PersistentObject obj){ if (obj instanceof Encounter) { display.setEncounter((Encounter) obj); } else if (obj instanceof Patient) { display.setEncounter(null); } } }