/* Copyright (c) 2016, Niklaus Giger 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:
* Niklaus Giger - initial API and implementation
*
* Sponsors:
* Dr. Peter Schönbucher, Luzern
******************************************************************************/
package org.iatrix.perspective;
import org.eclipse.ui.IFolderLayout;
import org.eclipse.ui.IPageLayout;
import org.eclipse.ui.IPerspectiveFactory;
import org.iatrix.IatrixActivator;
import org.iatrix.views.JournalView;
import org.iatrix.views.KonsListView;
import ch.elexis.core.ui.constants.UiResourceConstants;
import ch.elexis.core.ui.contacts.views.KontaktDetailView;
import ch.elexis.core.ui.contacts.views.KontakteView;
import ch.elexis.core.ui.contacts.views.PatientDetailView2;
import ch.elexis.core.ui.laboratory.views.LabNotSeenView;
import ch.elexis.core.ui.laboratory.views.LaborView;
import ch.elexis.core.ui.medication.views.DauerMediView;
import ch.elexis.core.ui.medication.views.MedicationView;
import ch.elexis.core.ui.views.AUF2;
import ch.elexis.core.ui.views.BriefAuswahl;
import ch.elexis.core.ui.views.FaelleView;
import ch.elexis.core.ui.views.FallDetailView;
import ch.elexis.core.ui.views.FallListeView;
import ch.elexis.core.ui.views.KompendiumView;
import ch.elexis.core.ui.views.KonsDetailView;
import ch.elexis.core.ui.views.PatHeuteView;
import ch.elexis.core.ui.views.ReminderView;
import ch.elexis.core.ui.views.RezeptBlatt;
import ch.elexis.core.ui.views.RezepteView;
import ch.elexis.core.ui.views.ScriptView;
import ch.elexis.core.ui.views.SearchView;
import ch.elexis.core.ui.views.TextView;
import ch.elexis.core.ui.views.codesystems.DiagnosenView;
import ch.elexis.core.ui.views.codesystems.LeistungenView;
import ch.elexis.core.ui.views.rechnung.AccountView;
import ch.elexis.core.ui.views.rechnung.BillSummary;
import ch.elexis.core.ui.views.rechnung.RechnungsListeView;
/**
* <p>The KG Iatrix perspective. Here we layout the views that compose the GUI.</p>
* <p>Derived from the PatientPerspektive</p>
*
* @author Niklaus Giger
*/
public class KgIatrixPerspective implements IPerspectiveFactory {
/**
* ID of this perspective.
*/
public static final String ID = IatrixActivator.PLUGIN_ID + ".ui.perspective";
/**
* Creates the initial perspective layout.
*
* @param layout
*/
@Override
public void createInitialLayout(IPageLayout layout) {
String editorArea = layout.getEditorArea();
layout.setEditorAreaVisible(false);
layout.setFixed(false);
IFolderLayout left_top =
layout.createFolder("Left.folder", IPageLayout.LEFT, 0.2f, editorArea); //$NON-NLS-1$
IFolderLayout main =
layout.createFolder("Main.Folder", IPageLayout.RIGHT, 0.2f, "Left.folder"); //$NON-NLS-1$
IFolderLayout right =
layout.createFolder("Right.folder", IPageLayout.RIGHT, 0.8f, "Main.Folder");
left_top.addView(UiResourceConstants.PatientenListeView_ID); // Patienten
left_top.addView(KontakteView.ID);
left_top.addView("ch.medshare.directories.views.WeisseSeitenSearchView");
IFolderLayout left_second =
layout.createFolder("Left.second", IPageLayout.BOTTOM, 0.25f, "Left.folder");
left_second.addView("ch.elexis.agenda.tagesview"); // TagesView.ID not public
left_second.addView(PatHeuteView.ID); // Kons. nach Datum
IFolderLayout left_third =
layout.createFolder("Left.third", IPageLayout.BOTTOM, 0.33f, "Left.second");
left_third.addView(LabNotSeenView.ID); // Labor neu
IFolderLayout left_fourth =
layout.createFolder("Left.fourth", IPageLayout.BOTTOM, 0.5f, "Left.third");
left_fourth.addView(ReminderView.ID); // Pendenzen
main.addView(JournalView.ID); // KG Iatrix
main.addView(KonsDetailView.ID);// Konsultation
main.addView("org.iatrix.views.KonsListView"); // KonsultationenIatrix
main.addView("at.medevit.elexis.roche.labor.view"); // Labor Roche // non-free software
main.addView("org.iatrix.messwerte.views.MesswerteView"); // Messwerte Iatrix
main.addView(LaborView.ID); // Labor
main.addView("ch.elexis.agenda.parallelview"); // Parallelanzeige
// main.addView(AgendaGross.ID);
main.addView("ch.elexis.agenda.largeview");
// main.addPlaceholder("ch.elexis.agenda.largeview"); // Agenda Praxis AgendaGross.ID is not exported!
main.addPlaceholder(ScriptView.ID); // Script, falls vorhanden
// Interaktionen. Welche View ID??
main.addPlaceholder(FallDetailView.ID);
// main.addPlaceholder(TextView.ID); no in right bottom
main.addPlaceholder(KompendiumView.ID);
right.addView(FaelleView.ID); // Fälle
right.addView("ch.elexis.ebanking_ch.ESRView"); // ESRView2 is the old one
right.addView(RechnungsListeView.ID);
IFolderLayout rightcenter =
layout.createFolder("Right.mitte", IPageLayout.BOTTOM, 0.25f, "Right.folder");
rightcenter.addView(AUF2.ID); // AUF
rightcenter.addView(RezepteView.ID); // Rezepte
rightcenter.addView(DauerMediView.ID); // Fixmedikation
IFolderLayout rightbottom =
layout.createFolder("Right.unten", IPageLayout.BOTTOM, 0.5f, "Right.mitte");
rightbottom.addView(SearchView.ID);// TODO: Suche
rightbottom.addView("ch.elexis.views.ExterneDokumente"); // aus ch.elexis.extdoc.views.ExterneDokumente
rightbottom.addView(BriefAuswahl.ID);
rightbottom.addView(TextView.ID); // ch.elexis.TextView"
rightbottom.addView(FallListeView.ID); // Fälle und kons
// rightbottom.addView(FallDetailView.ID);
rightbottom.addView(MedicationView.PART_ID);
/**
* Ganz unten kommt der Balken mit den Knöpfen
* "Show View as Fast View"
* Es können keine hinzugefügt werden, welche oben schon
* an einen Folder gebunden sind.
*/
layout.addFastView(LeistungenView.ID, 0.5f);
layout.addFastView(DiagnosenView.ID, 0.5f);
layout.addFastView("org.iatrix.help.wiki.views.WikiView");
layout.addFastView(AccountView.ID);
layout.addFastView(BillSummary.ID);
layout.addFastView(PatientDetailView2.ID);
// layout.addFastView(RechnungsListeView.ID);
layout.addFastView(KontaktDetailView.ID);
layout.addFastView(RezeptBlatt.ID);
// layout.addFastView(RezepteView.ID);
/**
* Add some shortcuts for Iatrix-Views
*/
layout.addShowViewShortcut(KonsListView.ID);
layout.addShowViewShortcut(FallListeView.ID);
layout.addShowViewShortcut("ch.elexis.views.ExterneDokumente"); // aus ch.elexis.extdoc.views.ExterneDokumente
layout.addShowViewShortcut("org.iatrix.messwerte.views.MesswerteView");
}
}