2929
3030import fr .gouv .vitam .tools .mailextractlib .core .StoreExtractor ;
3131import fr .gouv .vitam .tools .resip .data .Work ;
32+ import fr .gouv .vitam .tools .resip .event .EventBus ;
33+ import fr .gouv .vitam .tools .resip .event .SedaVersionChangedEvent ;
3234import fr .gouv .vitam .tools .resip .frame .*;
3335import fr .gouv .vitam .tools .resip .frame .preferences .PreferencesDialog ;
3436import fr .gouv .vitam .tools .resip .parameters .*;
4345import fr .gouv .vitam .tools .resip .threads .ImportThread ;
4446import fr .gouv .vitam .tools .resip .utils .ResipException ;
4547import fr .gouv .vitam .tools .resip .utils .ResipLogger ;
46- import fr .gouv .vitam .tools .sedalib .core .SEDA2Version ;
48+ import fr .gouv .vitam .tools .sedalib .core .seda .SedaContext ;
49+ import fr .gouv .vitam .tools .sedalib .core .seda .SedaVersion ;
4750import fr .gouv .vitam .tools .sedalib .droid .DroidIdentifier ;
4851import fr .gouv .vitam .tools .sedalib .utils .SEDALibException ;
4952
@@ -159,13 +162,20 @@ public class ResipGraphicApp implements ActionListener, Runnable {
159162 */
160163 public DuplicatesWindow duplicatesWindow ;
161164
165+ private SedaVersion sedaVersion ;
166+
162167 /**
163168 * Instantiates a new Resip graphic app.
164169 *
165170 * @param creationContext the creation context
166171 * @throws ResipException the resip exception
167172 */
168173 public ResipGraphicApp (CreationContext creationContext ) throws ResipException {
174+ EventBus .subscribe (
175+ SedaVersionChangedEvent .class ,
176+ event -> this .sedaVersion = event .getNewVersion ()
177+ );
178+
169179 try {
170180 if (System .getProperty ("os.name" ).toLowerCase ().contains ("win" ))
171181 UIManager .setLookAndFeel (UIManager .getSystemLookAndFeelClassName ());
@@ -195,13 +205,6 @@ public ResipGraphicApp(CreationContext creationContext) throws ResipException {
195205 this .interfaceParameters = new InterfaceParameters (Preferences .getInstance ());
196206 this .treatmentParameters = new TreatmentParameters (Preferences .getInstance ());
197207
198- try {
199- SEDA2Version .setSeda2Version (treatmentParameters .getSeda2Version ());
200- } catch (SEDALibException e ) {
201- getGlobalLogger ().getLogger ().error (e .getLocalizedMessage ());
202- System .exit (-1 );
203- }
204-
205208 getGlobalLogger ().setDebugFlag (interfaceParameters .isDebugFlag ());
206209 getGlobalLogger ().logIfDebug ("Resip prefs accessed from " + Preferences .getInstance ().getPrefPropertiesFilename (), null );
207210
@@ -377,13 +380,13 @@ public JMenuBar createMenu() {
377380 actionByMenuItem .put (menuItem , "SeeManifest" );
378381 treatMenu .add (menuItem );
379382
380- sedaValidationMenuItem = new JMenuItem ("Vérifier la conformité " + SEDA2Version . getSeda2VersionString () + "..." );
383+ sedaValidationMenuItem = new JMenuItem ("Vérifier la conformité " + sedaVersion . displayString () + "..." );
381384 sedaValidationMenuItem .addActionListener (this );
382385 sedaValidationMenuItem .setAccelerator (KeyStroke .getKeyStroke ('R' , Toolkit .getDefaultToolkit ().getMenuShortcutKeyMaskEx ()));
383386 actionByMenuItem .put (sedaValidationMenuItem , "CheckSEDASchema" );
384387 treatMenu .add (sedaValidationMenuItem );
385388
386- sedaProfileValidationMenuItem = new JMenuItem ("Vérifier la conformité à un profil " + SEDA2Version . getSeda2VersionString () + "..." );
389+ sedaProfileValidationMenuItem = new JMenuItem ("Vérifier la conformité à un profil " + sedaVersion . displayString () + "..." );
387390 sedaProfileValidationMenuItem .addActionListener (this );
388391 sedaProfileValidationMenuItem .setAccelerator (KeyStroke .getKeyStroke ('R' , InputEvent .SHIFT_DOWN_MASK + Toolkit .getDefaultToolkit ().getMenuShortcutKeyMaskEx ()));
389392 actionByMenuItem .put (sedaProfileValidationMenuItem , "CheckSpecificSEDASchemaProfile" );
@@ -726,18 +729,18 @@ private void loadWork() {
726729
727730 if (fileChooser .showOpenDialog (mainWindow ) == JFileChooser .APPROVE_OPTION ) {
728731 filename = fileChooser .getSelectedFile ().getCanonicalPath ();
729- int loadSeda2Version = Work .getSeda2VersionFromFile (filename );
730- if (loadSeda2Version != SEDA2Version .getSeda2Version ()) {
732+ final SedaVersion sedaVersionFromWorkspace = Work .getSeda2VersionFromFile (filename );
733+
734+ if (sedaVersionFromWorkspace != sedaVersion ) {
731735 if (UserInteractionDialog .getUserAnswer (mainWindow ,
732736 "Pour charger ce fichier il faut faire passer l'interface en " +
733- SEDA2Version . getSeda2VersionString ( loadSeda2Version ) + "\n " +
737+ sedaVersion + "\n " +
734738 "Voulez-vous continuer?" ,
735739 "Confirmation" , UserInteractionDialog .WARNING_DIALOG ,
736740 null ) != OK_DIALOG )
737741 return ;
738- treatmentParameters . setSeda2Version ( loadSeda2Version );
742+ EventBus . publish ( new SedaVersionChangedEvent ( sedaVersionFromWorkspace ) );
739743 treatmentParameters .toPrefs (Preferences .getInstance ());
740- useSeda2Version (treatmentParameters .getSeda2Version ());
741744 }
742745 mainWindow .setCursor (Cursor .getPredefinedCursor (Cursor .WAIT_CURSOR ));
743746 currentWork = Work .createFromFile (filename );
@@ -839,13 +842,13 @@ private void closeWork() {
839842 }
840843 }
841844
842- private void useSeda2Version (int version ) throws SEDALibException {
843- SEDA2Version .setSeda2Version (version );
844- if (currentWork != null )
845- currentWork .setSeda2Version (version );
846- sedaValidationMenuItem .setText ("Vérifier la conformité " + SEDA2Version .getSeda2VersionString () + "..." );
847- sedaProfileValidationMenuItem .setText ("Vérifier la conformité à un profil " + SEDA2Version .getSeda2VersionString () + "..." );
848- }
845+ // private void useSeda2Version(int version) throws SEDALibException {
846+ // SEDA2Version.setSeda2Version(version);
847+ // if (currentWork != null)
848+ // currentWork.setSeda2Version(version);
849+ // sedaValidationMenuItem.setText("Vérifier la conformité " + SEDA2Version.getSeda2VersionString() + "...");
850+ // sedaProfileValidationMenuItem.setText("Vérifier la conformité à un profil " + SEDA2Version.getSeda2VersionString() + "...");
851+ // }
849852
850853 // MenuItem Edit Preferences
851854
@@ -866,8 +869,6 @@ void editPrefs() {
866869 preferencesDialog .tp .toPrefs (Preferences .getInstance ());
867870 preferencesDialog .ip .toPrefs (Preferences .getInstance ());
868871 Preferences .getInstance ().save ();
869- treatmentParameters = preferencesDialog .tp ;
870- useSeda2Version (treatmentParameters .getSeda2Version ());
871872 interfaceParameters = preferencesDialog .ip ;
872873 debugMenuItem .setState (interfaceParameters .isDebugFlag ());
873874 experimentalMenuItem .setState (interfaceParameters .isExperimentalFlag ());
@@ -876,7 +877,7 @@ void editPrefs() {
876877 ResipLogger .createGlobalLogger (preferencesDialog .cc .getWorkDir () + File .separator + "log.txt" ,
877878 getGlobalLogger ().getProgressLogLevel ());
878879 }
879- } catch (ResipException | SEDALibException e ) {
880+ } catch (ResipException e ) {
880881 UserInteractionDialog .getUserAnswer (mainWindow ,
881882 "Erreur fatale, impossible d'éditer les préférences \n ->" + e .getMessage (),
882883 "Erreur" , UserInteractionDialog .ERROR_DIALOG ,
@@ -997,7 +998,7 @@ void seeManifest() {
997998 * Check seda schema.
998999 */
9991000 void checkSEDASchema () {
1000- InOutDialog inOutDialog = new InOutDialog (mainWindow , "Vérification " + SEDA2Version . getSeda2VersionString ());
1001+ InOutDialog inOutDialog = new InOutDialog (mainWindow , "Vérification " + sedaVersion . displayString ());
10011002 CheckProfileThread checkProfileThread = new CheckProfileThread (null , inOutDialog );
10021003 completeResipWork ();
10031004 checkProfileThread .execute ();
@@ -1014,7 +1015,7 @@ void checkSpecificSEDASchemaProfile() {
10141015 JFileChooser fileChooser = new JFileChooser (Preferences .getInstance ().getPrefsImportDir ());
10151016 fileChooser .setFileSelectionMode (JFileChooser .FILES_ONLY );
10161017 if (fileChooser .showOpenDialog (mainWindow ) == JFileChooser .APPROVE_OPTION ) {
1017- InOutDialog inOutDialog = new InOutDialog (mainWindow , "Vérification Profil " + SEDA2Version . getSeda2VersionString ());
1018+ InOutDialog inOutDialog = new InOutDialog (mainWindow , "Vérification Profil " + sedaVersion . displayString ());
10181019 CheckProfileThread checkProfileThread = new CheckProfileThread (fileChooser .getSelectedFile ()
10191020 .getAbsolutePath (), inOutDialog );
10201021 completeResipWork ();
@@ -1023,12 +1024,12 @@ void checkSpecificSEDASchemaProfile() {
10231024 }
10241025 } catch (Exception e ) {
10251026 UserInteractionDialog .getUserAnswer (mainWindow ,
1026- "Erreur fatale, impossible de faire la vérification de confirmité au profil " + SEDA2Version . getSeda2VersionString () + "\n ->"
1027+ "Erreur fatale, impossible de faire la vérification de confirmité au profil " + sedaVersion . displayString () + "\n ->"
10271028 + e .getMessage (),
10281029 "Erreur" , UserInteractionDialog .ERROR_DIALOG ,
10291030 null );
10301031 getGlobalLogger ().log (ResipLogger .ERROR , "resip.graphicapp: erreur fatale, impossible de faire la " +
1031- "vérification de confirmité au profil " + SEDA2Version . getSeda2VersionString (), e );
1032+ "vérification de confirmité au profil " + sedaVersion . displayString (), e );
10321033 }
10331034 }
10341035
0 commit comments