/**
*
*/
package de.urszeidler.shr5.ecp.editor;
import org.eclipse.ui.PartInitException;
import org.eclipse.ui.forms.IManagedForm;
import org.eclipse.ui.forms.editor.FormPage;
import de.urszeidler.eclipse.shr5.AbstractMatrixDevice;
import de.urszeidler.eclipse.shr5.AbstraktFokus;
import de.urszeidler.eclipse.shr5.AbstraktGegenstand;
import de.urszeidler.eclipse.shr5.AbstraktModifikatoren;
import de.urszeidler.eclipse.shr5.AbstraktPersona;
import de.urszeidler.eclipse.shr5.AttributModifikatorWert;
import de.urszeidler.eclipse.shr5.Credstick;
import de.urszeidler.eclipse.shr5.CredstickTransaction;
import de.urszeidler.eclipse.shr5.Fahrzeug;
import de.urszeidler.eclipse.shr5.FahrzeugErweiterung;
import de.urszeidler.eclipse.shr5.FernkampfwaffeModifikator;
import de.urszeidler.eclipse.shr5.Fertigkeit;
import de.urszeidler.eclipse.shr5.FertigkeitsGruppe;
import de.urszeidler.eclipse.shr5.Feuerwaffe;
import de.urszeidler.eclipse.shr5.Gegenstand;
import de.urszeidler.eclipse.shr5.Geist;
import de.urszeidler.eclipse.shr5.Kleidung;
import de.urszeidler.eclipse.shr5.KleindungsModifikator;
import de.urszeidler.eclipse.shr5.KomplexeForm;
import de.urszeidler.eclipse.shr5.LifestyleOption;
import de.urszeidler.eclipse.shr5.Magazin;
import de.urszeidler.eclipse.shr5.MagischeTradition;
import de.urszeidler.eclipse.shr5.MartialartStyle;
import de.urszeidler.eclipse.shr5.MartialartTechnique;
import de.urszeidler.eclipse.shr5.MetaMagie;
import de.urszeidler.eclipse.shr5.Modifizierbar;
import de.urszeidler.eclipse.shr5.Munition;
import de.urszeidler.eclipse.shr5.Nahkampfwaffe;
import de.urszeidler.eclipse.shr5.PersonaMartialartStyle;
import de.urszeidler.eclipse.shr5.Projektilwaffe;
import de.urszeidler.eclipse.shr5.Reichweite;
import de.urszeidler.eclipse.shr5.Sensor;
import de.urszeidler.eclipse.shr5.SensorFunction;
import de.urszeidler.eclipse.shr5.Shr5Package;
import de.urszeidler.eclipse.shr5.ShrList;
import de.urszeidler.eclipse.shr5.Software;
import de.urszeidler.eclipse.shr5.SourceBook;
import de.urszeidler.eclipse.shr5.SourceLink;
import de.urszeidler.eclipse.shr5.Spezies;
import de.urszeidler.eclipse.shr5.Substance;
import de.urszeidler.eclipse.shr5.SubstanceContainer;
import de.urszeidler.eclipse.shr5.Vertrag;
import de.urszeidler.eclipse.shr5.WeaponMount;
import de.urszeidler.eclipse.shr5.Wurfwaffe;
import de.urszeidler.eclipse.shr5.Zauber;
import de.urszeidler.eclipse.shr5.util.Shr5Switch;
import de.urszeidler.eclipse.shr5Management.CharacterAdvancementSystem;
import de.urszeidler.eclipse.shr5Management.CharacterGenerator;
import de.urszeidler.eclipse.shr5Management.CharacterGroup;
import de.urszeidler.eclipse.shr5Management.DiaryEntry;
import de.urszeidler.eclipse.shr5Management.FreeStyleGenerator;
import de.urszeidler.eclipse.shr5Management.GamemasterManagement;
import de.urszeidler.eclipse.shr5Management.GeneratorState;
import de.urszeidler.eclipse.shr5Management.GruntGroup;
import de.urszeidler.eclipse.shr5Management.IncreaseCharacterPart;
import de.urszeidler.eclipse.shr5Management.LifeModule;
import de.urszeidler.eclipse.shr5Management.LifeModulesGenerator;
import de.urszeidler.eclipse.shr5Management.ManagedCharacter;
import de.urszeidler.eclipse.shr5Management.ModuleChange;
import de.urszeidler.eclipse.shr5Management.Pack;
import de.urszeidler.eclipse.shr5Management.PlayerCharacter;
import de.urszeidler.eclipse.shr5Management.PlayerManagement;
import de.urszeidler.eclipse.shr5Management.QuellenConstrain;
import de.urszeidler.eclipse.shr5Management.Shr5Generator;
import de.urszeidler.eclipse.shr5Management.Shr5KarmaGenerator;
import de.urszeidler.eclipse.shr5Management.Shr5System;
import de.urszeidler.eclipse.shr5Management.Shr5managementFactory;
import de.urszeidler.eclipse.shr5Management.Shr5managementPackage;
import de.urszeidler.eclipse.shr5Management.SumToTenGenerator;
import de.urszeidler.eclipse.shr5Management.TrainingRange;
import de.urszeidler.eclipse.shr5Management.TrainingRate;
import de.urszeidler.eclipse.shr5Management.util.Shr5managementSwitch;
import de.urszeidler.shr5.ecp.editor.pages.BeschreibbarContainterPage;
import de.urszeidler.shr5.ecp.editor.pages.ContractPage;
import de.urszeidler.shr5.ecp.editor.pages.DefaultEmfFormsPage;
import de.urszeidler.shr5.ecp.editor.pages.EObjectBasicPage;
import de.urszeidler.shr5.ecp.editor.pages.FernkampfwaffePage;
import de.urszeidler.shr5.ecp.editor.pages.FertigkeitPage;
import de.urszeidler.shr5.ecp.editor.pages.FeuerwaffePage;
import de.urszeidler.shr5.ecp.editor.pages.GegenstandPage;
import de.urszeidler.shr5.ecp.editor.pages.GeneratorSystemPage;
import de.urszeidler.shr5.ecp.editor.pages.GruntGroupPage;
import de.urszeidler.shr5.ecp.editor.pages.Messages;
import de.urszeidler.shr5.ecp.editor.pages.ModifikatorPage;
import de.urszeidler.shr5.ecp.editor.pages.ModifizierbarPage;
import de.urszeidler.shr5.ecp.editor.pages.PrintPreviewPage;
import de.urszeidler.shr5.ecp.editor.pages.ReichweitePage;
import de.urszeidler.shr5.ecp.editor.pages.SoftwarePage;
import de.urszeidler.shr5.ecp.editor.pages.SourceBookPage;
import de.urszeidler.shr5.ecp.editor.pages.SpeziesPage;
import de.urszeidler.shr5.ecp.editor.pages.TransactionsPage;
import de.urszeidler.shr5.ecp.editor.pages.VariousItemsPage;
import de.urszeidler.shr5.ecp.editor.pages.VariousObjectsPage;
import de.urszeidler.shr5.ecp.editor.pages.VehiclePage;
import de.urszeidler.shr5.ecp.editor.pages.character.AbstraktPersonaPage;
import de.urszeidler.shr5.ecp.editor.pages.character.CharacterAdvancementPage;
import de.urszeidler.shr5.ecp.editor.pages.character.CharacterDiaryPage;
import de.urszeidler.shr5.ecp.editor.pages.character.CommitedCharacterPage;
import de.urszeidler.shr5.ecp.editor.pages.character.ManagedCharacterPage;
import de.urszeidler.shr5.ecp.editor.pages.generator.AbstractGeneratorPage;
import de.urszeidler.shr5.ecp.editor.pages.generator.FreeStyleGeneratorPage;
import de.urszeidler.shr5.ecp.editor.pages.generator.LifeModuleGeneratorPage;
import de.urszeidler.shr5.ecp.editor.pages.generator.Shr5GeneratorPage;
import de.urszeidler.shr5.ecp.editor.pages.generator.Shr5KarmaGeneratorPage;
import de.urszeidler.shr5.ecp.printer.PersonaPrinter;
/**
* An editor capable of handling several object types
*
* @author urs
*/
public class ShadowrunEditor extends AbstractShr5Editor {
private static final String EMPTY = ""; //$NON-NLS-1$
private ShrEditingState editingMode = ShrEditingState.CUSTOM;
public static final String id = "de.urszeidler.eclipse.shadowrun.presentation.editors.ShadowrunEditorID"; //$NON-NLS-1$
protected void handleActivate() {
if(theEObject!=null)
super.handleActivate();
}
@Override
protected void addPages() {
if(theEObject==null){
try {
addPage( new FormPage(this, EMPTY,"Object deleted"){
@Override
protected void createFormContent(IManagedForm managedForm) {
managedForm.getForm().setText("The object is deleted.");
}
});
} catch (PartInitException e) {
logError("error creating deleted object page", e);//$NON-NLS-1$
}
return;
}
// the switch creates all the pages
Shr5Switch<Object> shadowrunSwitch = new Shr5Switch<Object>() {
@Override
public Object caseSourceBook(SourceBook object) {
try {
addPage(new SourceBookPage(ShadowrunEditor.this, EMPTY, labelProvider.getText(object.eClass()), object, editingDomain, manager));
} catch (PartInitException e) {
logError("error creating SourceBookPage", e);//$NON-NLS-1$
}
return null;
}
@Override
public Object caseSpezies(Spezies object) {
try {
addPage(new SpeziesPage(ShadowrunEditor.this, EMPTY, labelProvider.getText(object.eClass()), object, editingDomain, manager));
} catch (PartInitException e) {
logError("error creating SpeziesPage", e);//$NON-NLS-1$
}
return null;
}
@Override
public Object caseCredstickTransaction(CredstickTransaction object) {
try {
addPage(new TransactionsPage(ShadowrunEditor.this, EMPTY, labelProvider.getText(object.eClass()), object, editingDomain, manager));
} catch (PartInitException e) {
logError("error creating FertigkeitPage", e);//$NON-NLS-1$
}
return null;
}
@Override
public Object caseFertigkeitsGruppe(FertigkeitsGruppe object) {
try {
addPage(new FertigkeitPage(ShadowrunEditor.this, EMPTY, labelProvider.getText(object.eClass()), object, editingDomain, manager));
} catch (PartInitException e) {
logError("error creating FertigkeitPage", e);//$NON-NLS-1$
}
return null;
}
@Override
public Object caseFertigkeit(Fertigkeit object) {
try {
addPage(new FertigkeitPage(ShadowrunEditor.this, EMPTY, labelProvider.getText(object.eClass()), object, editingDomain, manager));
} catch (PartInitException e) {
logError("error creating FertigkeitPage", e);//$NON-NLS-1$
}
return null;
}
@Override
public Object caseReichweite(Reichweite object) {
try {
addPage(new ReichweitePage(ShadowrunEditor.this, EMPTY, labelProvider.getText(object.eClass()), object, editingDomain, manager));
} catch (PartInitException e) {
logError("error creating ReichweitePage", e);//$NON-NLS-1$
}
return null;
}
@Override
public Object caseSoftware(Software object) {
try {
addPage(new SoftwarePage(ShadowrunEditor.this, EMPTY, labelProvider.getText(object.eClass()), object, editingDomain, manager));
} catch (PartInitException e) {
logError("error creating SoftwarePage", e);//$NON-NLS-1$
}
return null;
}
@Override
public Object caseVertrag(Vertrag object) {
try {
addPage(new ContractPage(ShadowrunEditor.this, EMPTY, labelProvider.getText(object.eClass()), object, editingDomain, manager));
} catch (PartInitException e) {
logError("error creating ContractPage", e);//$NON-NLS-1$
}
return null;
}
@Override
public Object caseFahrzeug(Fahrzeug object) {
try {
addPage(new VehiclePage(ShadowrunEditor.this, EMPTY, labelProvider.getText(object.eClass()), object, editingDomain, manager));
} catch (PartInitException e) {
logError("error creating VehiclePage", e);//$NON-NLS-1$
}
return null;
}
@Override
public Object caseCredstick(Credstick object) {
try {
addPage(new GegenstandPage(ShadowrunEditor.this, EMPTY, labelProvider.getText(Shr5Package.Literals.CREDSTICK), object,
editingDomain, manager));
} catch (PartInitException e) {
logError("error creating GegenstandPage", e);//$NON-NLS-1$
}
return null;
}
@Override
public Object caseMunition(Munition object) {
try {
addPage(new GegenstandPage(ShadowrunEditor.this, EMPTY, labelProvider.getText(object.eClass()), object, editingDomain, manager));
} catch (PartInitException e) {
logError("error creating GegenstandPage", e);//$NON-NLS-1$
}
return null;
}
@Override
public Object caseSubstanceContainer(SubstanceContainer object) {
try {
addPage(new GegenstandPage(ShadowrunEditor.this, EMPTY, labelProvider.getText(object.eClass()), object, editingDomain, manager));
} catch (PartInitException e) {
logError("error creating GegenstandPage", e);//$NON-NLS-1$
}
return null;
}
@Override
public Object caseAbstractMatrixDevice(AbstractMatrixDevice object) {
try {
addPage(new GegenstandPage(ShadowrunEditor.this, EMPTY, labelProvider.getText(object.eClass()), object, editingDomain, manager));
} catch (PartInitException e) {
logError("error creating GegenstandPage", e);//$NON-NLS-1$
}
return null;
}
@Override
public Object caseAbstraktFokus(AbstraktFokus object) {
try {
addPage(new GegenstandPage(ShadowrunEditor.this, EMPTY, labelProvider.getText(object.eClass()), object, editingDomain, manager));
} catch (PartInitException e) {
logError("error creating GegenstandPage", e);//$NON-NLS-1$
}
return null;
}
//
// @Override
// public Object caseDrug(Drug object) {
// try {
// addPage(new SubstancePage(ShadowrunEditor.this, EMPTY, labelProvider.getText(object.eClass()), object, editingDomain, manager));
// } catch (PartInitException e) {
// logError("error creating SubstancePage", e);//$NON-NLS-1$
// }
// return null;
// }
//
// @Override
// public Object caseToxin(Toxin object) {
// try {
// addPage(new SubstancePage(ShadowrunEditor.this, EMPTY, labelProvider.getText(object.eClass()), object, editingDomain, manager));
// } catch (PartInitException e) {
// logError("error creating SubstancePage", e);//$NON-NLS-1$
// }
// return null;
// }
// @Override
// public Object caseCyberdeck(Cyberdeck object) {
// try {
// addPage(new GegenstandPage(ShadowrunEditor.this, EMPTY, labelProvider.getText(Shr5Package.Literals.CYBERDECK), object, editingDomain,
// manager));
// } catch (PartInitException e) {
// logError("error creating GegenstandPage", e);//$NON-NLS-1$
// }
// return null;
// }
@Override
public Object caseGegenstand(Gegenstand object) {
try {
addPage(new GegenstandPage(ShadowrunEditor.this, EMPTY, labelProvider.getText(object.eClass()), object, editingDomain, manager));
if (object.getWifi() != null)
addPage(new GegenstandPage(ShadowrunEditor.this, EMPTY, labelProvider.getText(object.getWifi()),
(AbstraktGegenstand)object.getWifi(), editingDomain, manager));
} catch (PartInitException e) {
logError("error creating GegenstandPage", e);//$NON-NLS-1$
}
return null;
}
@Override
public Object caseKleidung(Kleidung object) {
try {
addPage(new GegenstandPage(ShadowrunEditor.this, EMPTY, labelProvider.getText(object.eClass()), object, editingDomain, manager));
} catch (PartInitException e) {
logError("error creating GegenstandPage", e);//$NON-NLS-1$
}
return null;
}
@Override
public Object caseMagazin(Magazin object) {
try {
addPage(new GegenstandPage(ShadowrunEditor.this, EMPTY, labelProvider.getText(object.eClass()), object, editingDomain, manager));
} catch (PartInitException e) {
logError("error creating GegenstandPage", e);//$NON-NLS-1$
}
return null;
}
@Override
public Object caseNahkampfwaffe(Nahkampfwaffe object) {
try {
addPage(new FernkampfwaffePage(ShadowrunEditor.this, EMPTY, labelProvider.getText(object.eClass()), object, editingDomain, manager));
} catch (PartInitException e) {
logError("error creating NahkampwaffePage", e);//$NON-NLS-1$
}
return null;
}
@Override
public Object caseFeuerwaffe(Feuerwaffe object) {
try {
addPage(new FeuerwaffePage(ShadowrunEditor.this, EMPTY, labelProvider.getText(object.eClass()), object, editingDomain, manager));
if (object.getMagazin() != null)
addPage(new GegenstandPage(ShadowrunEditor.this, EMPTY, labelProvider.getText(object.getMagazin()), object.getMagazin(),
editingDomain, manager));
if (object.getWifi() != null)
addPage(new GegenstandPage(ShadowrunEditor.this, EMPTY, labelProvider.getText(object.getWifi()),
(AbstraktGegenstand)object.getWifi(), editingDomain, manager));
} catch (PartInitException e) {
logError("error creating FeuerwaffePage", e);//$NON-NLS-1$
}
return null;
}
@Override
public Object caseMagischeTradition(MagischeTradition object) {
try {
addPage(new VariousObjectsPage(ShadowrunEditor.this, EMPTY, labelProvider.getText(object.eClass()), object, editingDomain, manager));
} catch (PartInitException e) {
logError("error creating VariousObjectsPage", e);//$NON-NLS-1$
}
return null;
}
@Override
public Object caseSubstance(Substance object) {
try {
addPage(new VariousItemsPage(ShadowrunEditor.this, EMPTY, labelProvider.getText(object.eClass()), object, editingDomain, manager));
} catch (PartInitException e) {
logError("error creating VariousItemsPage", e);//$NON-NLS-1$
}
return null;
}
@Override
public Object caseFernkampfwaffeModifikator(FernkampfwaffeModifikator object) {
try {
addPage(new VariousItemsPage(ShadowrunEditor.this, EMPTY, labelProvider.getText(object.eClass()), object, editingDomain, manager));
} catch (PartInitException e) {
logError("error creating VariousItemsPage", e);//$NON-NLS-1$
}
return null;
}
@Override
public Object caseWeaponMount(WeaponMount object) {
try {
addPage(new VariousItemsPage(ShadowrunEditor.this, EMPTY, labelProvider.getText(object.eClass()), object, editingDomain, manager));
} catch (PartInitException e) {
logError("error creating VariousItemsPage", e);//$NON-NLS-1$
}
return null;
}
@Override
public Object caseFahrzeugErweiterung(FahrzeugErweiterung object) {
try {
addPage(new VariousItemsPage(ShadowrunEditor.this, EMPTY, labelProvider.getText(object.eClass()), object, editingDomain, manager));
} catch (PartInitException e) {
logError("error creating VariousItemsPage", e);//$NON-NLS-1$
}
return null;
}
@Override
public Object caseKleindungsModifikator(KleindungsModifikator object) {
try {
addPage(new VariousItemsPage(ShadowrunEditor.this, EMPTY, labelProvider.getText(object.eClass()), object, editingDomain, manager));
} catch (PartInitException e) {
logError("error creating VariousItemsPage", e);//$NON-NLS-1$
}
return null;
}
@Override
public Object caseLifestyleOption(LifestyleOption object) {
try {
addPage(new VariousItemsPage(ShadowrunEditor.this, EMPTY, labelProvider.getText(object.eClass()), object, editingDomain, manager));
} catch (PartInitException e) {
logError("error creating VariousItemsPage", e);//$NON-NLS-1$
}
return null;
}
@Override
public Object caseSensor(Sensor object) {
try {
addPage(new VariousItemsPage(ShadowrunEditor.this, EMPTY, labelProvider.getText(object.eClass()), object, editingDomain, manager));
} catch (PartInitException e) {
logError("error creating VariousItemsPage", e);//$NON-NLS-1$
}
return null;
}
@Override
public Object caseSourceLink(SourceLink object) {
try {
addPage(new VariousObjectsPage(ShadowrunEditor.this, EMPTY, labelProvider.getText(object.eClass()), object, editingDomain,
manager));
} catch (PartInitException e) {
logError("error creating VariousObjectsPage", e);//$NON-NLS-1$
}
return null;
}
@Override
public Object caseSensorFunction(SensorFunction object) {
try {
addPage(new VariousObjectsPage(ShadowrunEditor.this, EMPTY, labelProvider.getText(object.eClass()), object, editingDomain,
manager));
} catch (PartInitException e) {
logError("error creating VariousObjectsPage", e);//$NON-NLS-1$
}
return null;
}
@Override
public Object caseMetaMagie(MetaMagie object) {
try {
addPage(new VariousObjectsPage(ShadowrunEditor.this, EMPTY, labelProvider.getText(object.eClass()), object, editingDomain,
manager));
} catch (PartInitException e) {
logError("error creating VariousObjectsPage", e);//$NON-NLS-1$
}
return null;
}
@Override
public Object caseKomplexeForm(KomplexeForm object) {
try {
addPage(new VariousObjectsPage(ShadowrunEditor.this, EMPTY, labelProvider.getText(object.eClass()), object, editingDomain,
manager));
} catch (PartInitException e) {
logError("error creating VariousObjectsPage", e);//$NON-NLS-1$
}
return null;
}
@Override
public Object caseZauber(Zauber object) {
try {
addPage(new VariousObjectsPage(ShadowrunEditor.this, EMPTY, labelProvider.getText(object.eClass()), object, editingDomain,
manager));
} catch (PartInitException e) {
logError("error creating VariousObjectsPage", e);//$NON-NLS-1$
}
return null;
}
@Override
public Object caseGeist(Geist object) {
try {
addPage(new VariousObjectsPage(ShadowrunEditor.this, EMPTY, labelProvider.getText(object.eClass()), object, editingDomain,
manager));
} catch (PartInitException e) {
logError("error creating VariousObjectsPage", e);//$NON-NLS-1$
}
return null;
}
@Override
public Object caseMartialartStyle(MartialartStyle object) {
try {
addPage(new VariousObjectsPage(ShadowrunEditor.this, EMPTY, labelProvider.getText(object.eClass()), object, editingDomain,
manager));
} catch (PartInitException e) {
logError("error creating VariousObjectsPage", e);//$NON-NLS-1$
}
return null;
}
@Override
public Object caseMartialartTechnique(MartialartTechnique object) {
try {
addPage(new VariousObjectsPage(ShadowrunEditor.this, EMPTY, labelProvider.getText(object.eClass()), object, editingDomain,
manager));
} catch (PartInitException e) {
logError("error creating VariousObjectsPage", e);//$NON-NLS-1$
}
return null;
}
@Override
public Object caseShrList(ShrList object) {
try {
addPage(new BeschreibbarContainterPage(ShadowrunEditor.this, EMPTY, labelProvider.getText(object.eClass()), object,
editingDomain, manager, Shr5Package.Literals.SHR_LIST__ENTRIES));
} catch (PartInitException e) {
logError("error creating FertigkeitPage", e);//$NON-NLS-1$
}
return null;
}
@Override
public Object caseAbstraktPersona(AbstraktPersona object) {
try {
addPage(new AbstraktPersonaPage(ShadowrunEditor.this, EMPTY, labelProvider.getText(object.eClass()), object, editingDomain,
manager));
} catch (PartInitException e) {
logError("error creating FertigkeitPage", e);//$NON-NLS-1$
}
return null;
}
@Override
public Object caseProjektilwaffe(Projektilwaffe object) {
try {
addPage(new FernkampfwaffePage(ShadowrunEditor.this, EMPTY, labelProvider.getText(object.eClass()), object, editingDomain,
manager));
} catch (PartInitException e) {
logError("error creating FernkampfwaffePage", e);//$NON-NLS-1$
}
return null;
}
@Override
public Object caseWurfwaffe(Wurfwaffe object) {
try {
addPage(new FernkampfwaffePage(ShadowrunEditor.this, EMPTY, labelProvider.getText(object.eClass()), object, editingDomain,
manager));
} catch (PartInitException e) {
logError("error creating FernkampfwaffePage", e);//$NON-NLS-1$
}
return null;
}
@Override
public Object caseModifizierbar(Modifizierbar object) {
try {
addPage(new ModifizierbarPage(ShadowrunEditor.this, EMPTY, Messages.ShadowrunEditor_page_modifications, object, editingDomain,
manager));
} catch (PartInitException e) {
logError("error creating ModifizierbarPage", e);//$NON-NLS-1$
}
return super.caseModifizierbar(object);
}
@Override
public Object casePersonaMartialartStyle(PersonaMartialartStyle object) {
try {
addPage(new EObjectBasicPage(ShadowrunEditor.this, EMPTY, labelProvider.getText(object.eClass()), object, editingDomain, manager));
} catch (PartInitException e) {
logError("error creating EObjectBasicPage", e);//$NON-NLS-1$
}
return super.casePersonaMartialartStyle(object);
}
@Override
public Object caseAttributModifikatorWert(AttributModifikatorWert object) {
try {
addPage(new EObjectBasicPage(ShadowrunEditor.this, EMPTY, labelProvider.getText(object.eClass()), object, editingDomain, manager));
} catch (PartInitException e) {
logError("error creating EObjectBasicPage", e);//$NON-NLS-1$
}
return super.caseAttributModifikatorWert(object);
}
@Override
public Integer caseAbstraktModifikatoren(AbstraktModifikatoren object) {
try {
addPage(new ModifikatorPage(ShadowrunEditor.this, EMPTY, labelProvider.getText(object.eClass()), object, editingDomain, manager));
} catch (PartInitException e) {
logError("error creating ModifizierbarPage", e);//$NON-NLS-1$
}
return null;
}
};
shadowrunSwitch.doSwitch(theEObject);
Shr5managementSwitch<Object> shr5managementSwitch = new Shr5managementSwitch<Object>() {
@Override
public Object caseFreeStyleGenerator(FreeStyleGenerator object) {
try {
addPage(new FreeStyleGeneratorPage(ShadowrunEditor.this, EMPTY, Messages.ShadowrunEditor_page_freestyle_generator, object,
editingDomain, manager));
addPage(new PrintPreviewPage(ShadowrunEditor.this, EMPTY, Messages.ShadowrunEditor_shr5_generator_sheet, PersonaPrinter
.getInstance().createShr5CharacterGeneratorPrintFactory(object)));
} catch (PartInitException e) {
logError("error creating ModifizierbarPage", e);//$NON-NLS-1$
}
return super.caseFreeStyleGenerator(object);
}
@Override
public Object caseShr5Generator(Shr5Generator object) {
try {
addPage(new Shr5GeneratorPage(ShadowrunEditor.this, EMPTY, Messages.ShadowrunEditor_page_shr5_generator, object, editingDomain,
manager));
addPage(new PrintPreviewPage(ShadowrunEditor.this, EMPTY, Messages.ShadowrunEditor_shr5_generator_sheet, PersonaPrinter
.getInstance().createShr5CharacterGeneratorPrintFactory(object)));
} catch (PartInitException e) {
logError("error creating ModifizierbarPage", e);//$NON-NLS-1$
}
return super.caseShr5Generator(object);
}
@Override
public Object caseSumToTenGenerator(SumToTenGenerator object) {
return super.caseSumToTenGenerator(object);
}
@Override
public Object caseShr5KarmaGenerator(Shr5KarmaGenerator object) {
try {
addPage(new Shr5KarmaGeneratorPage(ShadowrunEditor.this, EMPTY, Messages.ShadowrunEditor_Karama_Generator, object, editingDomain,
manager));
addPage(new PrintPreviewPage(ShadowrunEditor.this, EMPTY, Messages.ShadowrunEditor_shr5_generator_sheet, PersonaPrinter
.getInstance().createShr5CharacterGeneratorPrintFactory(object)));
} catch (PartInitException e) {
logError("error creating ModifizierbarPage", e);//$NON-NLS-1$
}
return null;
}
@Override
public Object caseLifeModulesGenerator(LifeModulesGenerator object) {
try {
addPage(new LifeModuleGeneratorPage(ShadowrunEditor.this, EMPTY, "Life module generator", object, editingDomain,
manager));
addPage(new PrintPreviewPage(ShadowrunEditor.this, EMPTY, Messages.ShadowrunEditor_shr5_generator_sheet, PersonaPrinter
.getInstance().createShr5CharacterGeneratorPrintFactory(object)));
} catch (PartInitException e) {
logError("error creating ModifizierbarPage", e);//$NON-NLS-1$
}
return object;
}
@Override
public Object caseManagedCharacter(ManagedCharacter object) {
try {
if (object.getGeneratorSrc() != null)
if (object.getGeneratorSrc().getState() == GeneratorState.COMMITED) {
addPage(new CommitedCharacterPage(ShadowrunEditor.this, AbstractGeneratorPage.COMMITED,
"Overview", object, editingDomain, manager));
}
addPage(new AbstraktPersonaPage(ShadowrunEditor.this, AbstractGeneratorPage.PERSONA, Messages.ShadowrunEditor_page_persona,
object.getPersona(), editingDomain, manager));
addPage(new ManagedCharacterPage(ShadowrunEditor.this, AbstractGeneratorPage.PERSONA_INVENTAR,
Messages.ShadowrunEditor_page_character, object, editingDomain, manager));
if(object instanceof PlayerCharacter){
if(((PlayerCharacter)object).getDiary()==null)
((PlayerCharacter)object).setDiary(Shr5managementFactory.eINSTANCE.createCharacterDiary());
addPage(new CharacterDiaryPage(ShadowrunEditor.this, AbstractGeneratorPage.PERSONA_INVENTAR,
"Diary", ((PlayerCharacter)object).getDiary(), editingDomain, manager));
}
addPage(new CharacterAdvancementPage(ShadowrunEditor.this, AbstractGeneratorPage.PERSONA_ADVANCEMENT,
Messages.ShadowrunEditor_page_advacement, object, editingDomain, manager));
addPage(new PrintPreviewPage(ShadowrunEditor.this, AbstractGeneratorPage.PERSONA_PRINTER,
Messages.ShadowrunEditor_page_character_sheet, PersonaPrinter.getInstance().createPrintFactory(object)));
if (object.getGeneratorSrc() != null)
this.doSwitch(object.getGeneratorSrc());
} catch (PartInitException e) {
logError("error creating ManagedCharacterPage", e);//$NON-NLS-1$
}
return super.caseManagedCharacter(object);
}
@Override
public Object caseGruntGroup(GruntGroup object) {
try {
addPage(new GruntGroupPage(ShadowrunEditor.this, EMPTY, Messages.ShadowrunEditor_page_grount_group, object, editingDomain,
manager));
addPage(new PrintPreviewPage(ShadowrunEditor.this, AbstractGeneratorPage.PERSONA_PRINTER,
Messages.ShadowrunEditor_page_grunt_group_sheet, PersonaPrinter.getInstance().createGruntPrintFactory(object)));
} catch (PartInitException e) {
logError("error creating GruntPage", e);//$NON-NLS-1$
}
return super.caseGruntGroup(object);
}
@Override
public Object caseCharacterGroup(CharacterGroup object) {
try {
addPage(new BeschreibbarContainterPage(ShadowrunEditor.this, EMPTY, Messages.ShadowrunEditor_page_character_group, object,
editingDomain, manager, Shr5managementPackage.Literals.CHARACTER_GROUP__MEMBERS, Messages.ShadowrunEditor_members));
addPage(new PrintPreviewPage(ShadowrunEditor.this, AbstractGeneratorPage.PERSONA_PRINTER,
Messages.ShadowrunEditor_page_character_group_sheet, PersonaPrinter.getInstance()
.createCharacterGroupPrintFactory(object)));
} catch (PartInitException e) {
logError("error creating BeschreibbarContainterPage", e);//$NON-NLS-1$
}
return super.caseCharacterGroup(object);
}
@Override
public Object caseGamemasterManagement(GamemasterManagement object) {
try {
// addPage(new GenericBasicBeschreibbarPage(ShadowrunEditor.this, EMPTY, EMPTY, object, editingDomain, manager));
addPage(new BeschreibbarContainterPage(ShadowrunEditor.this, EMPTY, labelProvider.getText(object.eClass()), object,
editingDomain, manager, Shr5managementPackage.Literals.PLAYER_MANAGEMENT__ENTRIES,
Shr5managementPackage.Literals.PLAYER_MANAGEMENT__GENERATORS, Shr5managementPackage.Literals.PLAYER_MANAGEMENT__GROUPS,
Shr5managementPackage.Literals.GAMEMASTER_MANAGEMENT__GRUNTS));
} catch (PartInitException e) {
logError("error creating FertigkeitPage", e);//$NON-NLS-1$
}
return this;
}
@Override
public Object casePlayerManagement(PlayerManagement object) {
try {
// addPage(new GenericBasicBeschreibbarPage(ShadowrunEditor.this, EMPTY, EMPTY, object, editingDomain, manager));
addPage(new BeschreibbarContainterPage(ShadowrunEditor.this, EMPTY, labelProvider.getText(object.eClass()), object,
editingDomain, manager, Shr5managementPackage.Literals.PLAYER_MANAGEMENT__ENTRIES,
Shr5managementPackage.Literals.PLAYER_MANAGEMENT__GENERATORS, Shr5managementPackage.Literals.PLAYER_MANAGEMENT__GROUPS));
} catch (PartInitException e) {
logError("error creating FertigkeitPage", e);//$NON-NLS-1$
}
return this;
}
@Override
public Object caseShr5System(Shr5System object) {
try {
addPage(new GeneratorSystemPage(ShadowrunEditor.this, AbstractGeneratorPage.PERSONA, Messages.ShadowrunEditor_page_persona,
object, editingDomain, manager));
} catch (PartInitException e) {
logError("error creating GeneratorSystemPage", e);//$NON-NLS-1$
}
return this;
}
@SuppressWarnings({ "rawtypes", "unchecked" })
@Override
public Object caseCharacterGenerator(CharacterGenerator object) {
GeneratorState state = object.getState();
switch (state) {
case COMMITED:
editingMode = ShrEditingState.READONLY;
break;
default:
editingMode = ShrEditingState.EDITABLE;
break;
}
return super.caseCharacterGenerator(object);
}
@Override
public Object casePack(Pack object) {
try {
addPage(new VariousItemsPage(ShadowrunEditor.this, EMPTY, labelProvider.getText(object.eClass()), object, editingDomain, manager));
} catch (PartInitException e) {
logError("error creating VariousItemsPage", e);//$NON-NLS-1$
}
return super.casePack(object);
}
@Override
public Object caseLifeModule(LifeModule object) {
try {
addPage(new VariousObjectsPage(ShadowrunEditor.this, EMPTY, labelProvider.getText(object.eClass()), object, editingDomain, manager));
} catch (PartInitException e) {
logError("error creating VariousItemsPage", e);//$NON-NLS-1$
}
return super.caseLifeModule(object);
}
@Override
public Object caseModuleChange(ModuleChange object) {
try {
addPage(new EObjectBasicPage(ShadowrunEditor.this, EMPTY, labelProvider.getText(object.eClass()), object, editingDomain, manager));
} catch (PartInitException e) {
logError("error creating EObjectBasicPage", e);//$NON-NLS-1$
}
return super.caseModuleChange(object);
}
@Override
public Object caseQuellenConstrain(QuellenConstrain object) {
try {
addPage(new EObjectBasicPage(ShadowrunEditor.this, EMPTY, labelProvider.getText(object.eClass()), object, editingDomain, manager));
} catch (PartInitException e) {
logError("error creating EObjectBasicPage", e);//$NON-NLS-1$
}
return super.caseQuellenConstrain(object);
}
@Override
public Object caseIncreaseCharacterPart(IncreaseCharacterPart object) {
try {
addPage(new EObjectBasicPage(ShadowrunEditor.this, EMPTY, labelProvider.getText(object.eClass()), object, editingDomain, manager));
} catch (PartInitException e) {
logError("error creating EObjectBasicPage", e);//$NON-NLS-1$
}
return super.caseIncreaseCharacterPart(object);
}
@Override
public Object caseTrainingRate(TrainingRate object) {
try {
addPage(new EObjectBasicPage(ShadowrunEditor.this, EMPTY, labelProvider.getText(object.eClass()), object, editingDomain, manager));
} catch (PartInitException e) {
logError("error creating EObjectBasicPage", e);//$NON-NLS-1$
}
return super.caseTrainingRate(object);
}
@Override
public Object caseTrainingRange(TrainingRange object) {
try {
addPage(new EObjectBasicPage(ShadowrunEditor.this, EMPTY, labelProvider.getText(object.eClass()), object, editingDomain, manager));
} catch (PartInitException e) {
logError("error creating EObjectBasicPage", e);//$NON-NLS-1$
}
return super.caseTrainingRange(object);
}
@Override
public Object caseDiaryEntry(DiaryEntry object) {
try {
addPage(new EObjectBasicPage(ShadowrunEditor.this, EMPTY, labelProvider.getText(object.eClass()), object, editingDomain, manager));
} catch (PartInitException e) {
logError("error creating EObjectBasicPage", e);//$NON-NLS-1$
}
return super.caseDiaryEntry(object);
}
@Override
public Object caseCharacterAdvancementSystem(CharacterAdvancementSystem object) {
try {
addPage(new BeschreibbarContainterPage(ShadowrunEditor.this, EMPTY, labelProvider.getText(object.eClass()), object,
editingDomain, manager, Shr5managementPackage.Literals.CHARACTER_ADVANCEMENT_SYSTEM__CHARACTER_ADVANCEMENTS));
} catch (PartInitException e) {
logError("error creating BeschreibbarContainterPage", e);//$NON-NLS-1$
}
return this;
}
};
shr5managementSwitch.doSwitch(theEObject);
try {
addPage(new DefaultEmfFormsPage(ShadowrunEditor.this, "Default_EMF_Form_Page", "default form", theEObject)); //$NON-NLS-1$
} catch (PartInitException e) {
logError("error creating DefaultEmfFormsPage", e);//$NON-NLS-1$
}
}
}