From: <bma...@us...> - 2008-11-12 10:11:52
|
Revision: 4203 http://fudaa.svn.sourceforge.net/fudaa/?rev=4203&view=rev Author: bmarchan Date: 2008-11-12 10:11:48 +0000 (Wed, 12 Nov 2008) Log Message: ----------- Created tag FudaaModeleur_0_07. Added Paths: ----------- tags/FudaaModeleur_0_07/ tags/FudaaModeleur_0_07/fudaa_devel/ tags/FudaaModeleur_0_07/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlImplementation.java Removed Paths: ------------- tags/FudaaModeleur_0_07/fudaa_devel/ tags/FudaaModeleur_0_07/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlImplementation.java Property changes on: tags/FudaaModeleur_0_07 ___________________________________________________________________ Added: svn:ignore + eclipse_projects Added: svn:mergeinfo + /branches/Br_FudaaModeleur_TF:3445-3850 /branches/FudaaModeleur_TC1:3861-3891 Deleted: tags/FudaaModeleur_0_07/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlImplementation.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlImplementation.java 2008-11-12 09:53:38 UTC (rev 4201) +++ tags/FudaaModeleur_0_07/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlImplementation.java 2008-11-12 10:11:48 UTC (rev 4203) @@ -1,698 +0,0 @@ -/* - * @creation 7 juin 07 - * @modification $Date: 2008/05/13 12:10:12 $ - * @license GNU General Public License 2 - * @copyright (c)1998-2001 CETMEF 2 bd Gambetta F-60231 Compiegne - * @mail de...@fu... - */ -package org.fudaa.fudaa.modeleur; - -import java.awt.Dimension; -import java.awt.EventQueue; -import java.awt.Point; -import java.awt.event.ActionEvent; -import java.beans.PropertyVetoException; -import java.io.File; -import java.io.IOException; -import java.net.URL; -import java.util.List; - -import javax.swing.Action; -import javax.swing.JComponent; -import javax.swing.JInternalFrame; -import javax.swing.JOptionPane; -import javax.swing.filechooser.FileFilter; - -import org.fudaa.ctulu.CtuluExportDataInterface; -import org.fudaa.ctulu.CtuluLib; -import org.fudaa.ctulu.CtuluLibFile; -import org.fudaa.ctulu.CtuluRunnable; -import org.fudaa.ctulu.CtuluTaskDelegate; -import org.fudaa.ctulu.ProgressionInterface; -import org.fudaa.ctulu.gui.CtuluDialogPanel; -import org.fudaa.ctulu.gui.CtuluFileChooserTestWritable; -import org.fudaa.ctulu.gui.CtuluHelpComponent; -import org.fudaa.ctulu.gui.CtuluLibDialog; -import org.fudaa.ebli.calque.ZEbliFilleCalques; -import org.fudaa.ebli.commun.EbliActionMap; -import org.fudaa.ebli.impression.EbliMiseEnPagePreferencesPanel; -import org.fudaa.ebli.ressource.EbliResource; -import org.fudaa.fudaa.commun.FudaaLib; -import org.fudaa.fudaa.commun.FudaaProjectStateListener; -import org.fudaa.fudaa.commun.FudaaProjetStateInterface; -import org.fudaa.fudaa.commun.aide.FudaaHelpPanel; -import org.fudaa.fudaa.commun.impl.FudaaCommonImplementation; -import org.fudaa.fudaa.commun.impl.FudaaGuiLib; -import org.fudaa.fudaa.commun.impl.FudaaLookPreferencesPanel; -import org.fudaa.fudaa.commun.impl.FudaaStartupExitPreferencesPanel; -import org.fudaa.fudaa.commun.save.FudaaSaveLib; -import org.fudaa.fudaa.commun.save.FudaaSaveZipLoader; -import org.fudaa.fudaa.sig.FSigLib; -import org.fudaa.fudaa.sig.FSigProjectPersistence; -import org.fudaa.fudaa.sig.FSigResource; -import org.fudaa.fudaa.tr.TrLauncherDefault; -import org.fudaa.fudaa.tr.common.TrProjectImportPanel; -import org.fudaa.fudaa.tr.common.TrProjectPersistence; -import org.fudaa.fudaa.tr.common.TrResource; - -import com.memoire.bu.BuBrowserPreferencesPanel; -import com.memoire.bu.BuColumn; -import com.memoire.bu.BuDesktopPreferencesPanel; -import com.memoire.bu.BuInformationsSoftware; -import com.memoire.bu.BuLanguagePreferencesPanel; -import com.memoire.bu.BuLib; -import com.memoire.bu.BuMainPanel; -import com.memoire.bu.BuMenu; -import com.memoire.bu.BuMenuBar; -import com.memoire.bu.BuMenuItem; -import com.memoire.bu.BuMenuRecentFiles; -import com.memoire.bu.BuPreferences; -import com.memoire.bu.BuRegistry; -import com.memoire.bu.BuResource; -import com.memoire.bu.BuScrollPane; -import com.memoire.bu.BuTaskView; -import com.memoire.bu.BuUserPreferencesPanel; -import com.memoire.fu.FuLog; - -/** - * La classe principale de mise en place de l'application, de gestion des - * actions, des \xE9tats de l'interface, etc. - * - * @author Bertrand Marchand - * @version $Id: MdlImplementation.java,v 1.1.2.9 2008/05/13 12:10:12 bmarchan Exp $ - */ -public class MdlImplementation extends FudaaCommonImplementation implements FudaaProjectStateListener { - - protected static BuInformationsSoftware isMdl_ = new BuInformationsSoftware(); - static { - isMdl_.name = "Modeleur"; - isMdl_.version = "0.07"; - isMdl_.date = "2008-11-06"; - isMdl_.rights = "Tous droits r\xE9serv\xE9s. CETMEF (c)1999-2008"; - isMdl_.license = "GPL2"; - isMdl_.languages = "fr,en"; - isMdl_.authors=new String[]{"F.Deniger, B.Marchand"}; - isMdl_.contact="nic...@eq..."; - isMdl_.http="http://www.fudaa.fr/mdl/"; - - isMdl_.logo = EbliResource.EBLI.getIcon("draw-palette"); - isMdl_.banner = BuResource.BU.getIcon("aproposde_32"); - } - - public static File getDestFile(File _init) { - return CtuluLibFile.appendExtensionIfNeeded(_init, getExtension()); - } - - public static String getExtension() { - return "mod.zip"; - } - - public static class MdlFileFilter extends FileFilter { - final String extension_ = '.' + getExtension(); - - public boolean accept(File _f) { - return _f != null && (_f.isDirectory() || _f.getName().endsWith(extension_)); - } - - public String getDescription() { - return FSigResource.FSIG.getString("Fudaa Modeleur (*.mod.zip)"); - } - - } - - public static BuInformationsSoftware informationsSoftware() { - return isMdl_; - } - - MdlFille2d currentFrame_; - MdlProjet project_; - public final static FileFilter FILTER = new MdlFileFilter(); - - public MdlImplementation() { - super(); - useNewHelp_ = false; - } - - private File chooseNewFile(boolean _saveDialog) { - return getDestFile(chooseFile(_saveDialog)); - } - - private File chooseFile(boolean _saveDialog) { - return FudaaGuiLib.ouvrirFileChooser(FSigResource.FSIG.getString("Fichier modeleur"), FILTER, this.getFrame(), - _saveDialog, _saveDialog ? new CtuluFileChooserTestWritable(this) : null); - } - - protected void setFileIfNeeded() { - if (project_.getParamsFile() == null) { - project_.setParamFile(chooseNewFile(true)); - } - } - - public void projectStateChanged(FudaaProjetStateInterface _proj) { - updateActionsState(); - } - - /** - * Mise \xE0 jour de l'\xE9tat des boutons. - */ - void updateActionsState() { - FuLog.trace("Project state change"); - - boolean bprjOpen=project_!=null; - boolean bprjModPar=bprjOpen && project_.getProjectState().isParamsModified(); - boolean buiMod=bprjOpen && project_.getProjectState().isUIModified(); - - setEnabledForAction("ENREGISTRER", bprjModPar | buiMod); - setEnabledForAction("ENREGISTRERSOUS", bprjOpen); - setEnabledForAction("FERMER", bprjOpen); - setEnabledForAction("IMPORT_PROJECT", bprjOpen); - setEnabledForAction(CtuluExportDataInterface.EXPORT_CMD, bprjOpen); - } - - void createNewInternalFrame(/*boolean _add*/) { - currentFrame_ = new MdlFille2d(this); - /*if (_add) */addInternalFrame(currentFrame_); - } - - protected boolean buildExportDataToolIcon() { - return true; - } - - protected boolean buildFudaaReportTool() { - return true; - } - - protected boolean buildImageToolIcon() { - return true; - } - - /** - * Ferme le projet, ferme les fenetres associ\xE9s, sans demande d'enregistrement en cas - * de modif (ce controle a \xE9t\xE9 effectu\xE9 en amont). - */ - protected void closeProject() { - if (project_==null) return; - project_.close(); - try { - currentFrame_.setClosed(true); - } catch (PropertyVetoException _evt) { - FuLog.error(_evt); - - } - removeInternalFrames(getAllInternalFrames()); -// removeInternalFrame(currentFrame_); - getMainMenuBar().repaint(); - project_ = null; - } - - protected void createProject(final boolean _add) { - project_ = new MdlProjet(); - project_.setOpening(true); - if (_add) createNewInternalFrame(); - else ((MdlVisuPanel)currentFrame_.getVisuPanel()).initCalques(false); - project_.install(this); - BuLib.invokeLater(new Runnable() { - - public void run() { - project_.setOpening(false); -// changeSaveActions(false); - updateActionsState(); - project_.setSaved(); - getMainMenuBar().repaint(); - } - }); - } - - protected boolean useScrollInBuDesktop() { - return true; - } - - public void actionPerformed(ActionEvent _evt) { - final String action = _evt.getActionCommand(); - if (action == null) { - return; - } - if ("OUVRIR".equals(action)) { - ouvrir(null); - } else if ("ENREGISTRER".equals(action)) { - save(); - } else if ("ENREGISTRERSOUS".equals(action)) { - saveAs(); - } else if ("FERMER".equals(action)) { - close(); - } else if ("CREER".equals(action)) { - create(); - } else if ("IMPORT_PROJECT".equals(action)) { - importProject(); - } else if ("AIDE_INDEX".equals(action)) { - displayHelp(getAideIndexUrl()); - } else if (action.startsWith("TOGGLE")) { - final BuColumn c = getMainPanel().getRightColumn(); - final JComponent comp = c.getToggleComponent(action); - if (comp != null) { - comp.setVisible(!comp.isVisible()); - c.revalidate(); - } - } else if (action.startsWith("REOUVRIR")) { - FuLog.trace(action.substring(9,action.length()-1)); - ouvrir(new File(action.substring(9,action.length()-1))); - } else - super.actionPerformed(_evt); - } - - /** - * Met a jour les fichiers recents chaque fois que necessaire. - */ - private void updateRecentFiles(File _fichier) { - getMainMenuBar().addRecentFile(_fichier.getPath(),null); - MdlPreferences.MDL.writeIniFile(); - } - - /** - * Surcharge de la m\xE9thode pour pouvoir sauvegarder les pr\xE9f\xE9rences. - */ - public void exit() { - confirmExit(); - } - - /** - * Confirmation de la sortie avec ou sans sauvegarde. - */ - public boolean confirmExit() { - if (!FudaaStartupExitPreferencesPanel.isExitConfirmed() || - question(BuResource.BU.getString("Quitter"), BuResource.BU - .getString("Voulez-vous vraiment quitter ce logiciel ?"))) { - return saveAndCloseProjet(new Runnable() { - // Lanc\xE9 apr\xE8s la sauvegarde, si op\xE9ration de sauvegarde concluante ou si pas de sauvegarde demand\xE9e. - public void run() { - savePreferencesAndTerminate(); - } - }); - } - return true; - } - - public void create() { - saveAndCloseProjet(new Runnable() { - public void run() { - createProject(true); - } - }); - } - - public void close() { - saveAndCloseProjet(null); - updateActionsState(); - } - - protected String getAideIndexUrl() { - return getHelpDir() + "modeleur/index.html"; - } - - public BuPreferences getApplicationPreferences() { - return null; - } - - public BuInformationsSoftware getInformationsSoftware() { - return informationsSoftware(); - } - - /** - * Ouvre un nouveau projet. Peut demander la sauvegarde du projet pr\xE9c\xE9demment ouvert si - * existant. - * @param _f Le fichier projet \xE0 ouvrir. null, si le fichier doit etre choisi par l'utilisateur. - */ - public void ouvrir(final File _f) { - if (isProjectModified()) { - saveAndCloseProjet(new Runnable() { - - public void run() { - ouvrir(_f); - } - }); - return; - } - - closeProject(); - - final File f = CtuluLibFile.exists(_f) ? _f : chooseFile(false); - if (f==null) return; // Abandon utilisateur. - - createProject(false); - setGlassPaneStop(); - new CtuluRunnable(BuResource.BU.getString("Ouvrir"), MdlImplementation.this) { - - public boolean run(ProgressionInterface _proj) { - project_.setOpening(true); - Runnable r = null; - try { - r = FudaaSaveLib.restoreFille(MdlImplementation.this, currentFrame_, _proj, f); - project_.setParamFile(f); - - } finally { - - final Runnable swingRun = r; - BuLib.invokeLater(new Runnable() { - - public void run() { - try { - addInternalFrame(currentFrame_); - if (swingRun != null) swingRun.run(); - - // le projet a ete install\xE9: on enl\xE8ve les flag de modification - project_.setOpening(false); - project_.setSaved(); - if (swingRun == null) { - MdlImplementation.this.warn(BuResource.BU.getString("Ouvrir"), FSigResource.FSIG - .getString("Le projet n'a pas \xE9t\xE9 ouvert!")); - } - else { - updateRecentFiles(project_.getParamsFile()); - } - } finally { - unsetGlassPaneStop(); - - } - } - - }); - - } - return r != null; - } - }.run(); - } - - public void save() { - if (project_.getParamsFile() != null) { - CtuluRunnable act = new CtuluRunnable(FudaaSaveLib.getActionSaveTitle(), this) { - - public boolean run(ProgressionInterface _proj) { - if (FSigProjectPersistence.saveProject(MdlImplementation.this, project_, project_.getParamsFile(), _proj)) { - updateRecentFiles(project_.getParamsFile()); - return true; - } - return false; - } - }; - act.setAfterRunnable(getSaveSwingRunnable(project_.getParamsFile()), true); - act.run(); - } else - saveAs(); - } - - public void saveAs() { - final File f = chooseNewFile(true); - if (f == null) return; - - CtuluRunnable act = new CtuluRunnable(FudaaSaveLib.getActionSaveTitle(), this) { - - public boolean run(ProgressionInterface _proj) { - if (FSigProjectPersistence.saveProject(MdlImplementation.this, project_, f, _proj)) { - updateRecentFiles(f); - return true; - } - return false; - } - }; - act.setAfterRunnable(getSaveSwingRunnable(f), true); - act.run(); - } - - protected boolean isProjectModified() { - return project_ != null - && (project_.getProjectState().isParamsModified() || project_.getProjectState().isUIModified()); - } - - public void importProject() { - MdlProjectImportPanel pn=new MdlProjectImportPanel(); - if (CtuluDialogPanel.isOkResponse(pn.afficheModale(getFrame(), "Import d'un projet"))) { - FudaaSaveZipLoader loader = null; - try { - loader = pn.getLoader(); - final FudaaSaveZipLoader finalLoader = loader; - final CtuluTaskDelegate createTask = createTask("Import d'un projet"); -// FIXME BM: Suppression de la tache dans un thread diff\xE9rent, car l'appli se bloque -// Probable pb de deadlock. -// createTask.start(new Runnable() { -// public void run() { - FudaaSaveLib.restoreAndLaunch(MdlImplementation.this, currentFrame_, createTask.getStateReceiver(), finalLoader); -// } -// }); - } catch (final IOException _evt) { - FuLog.error(_evt); - - } - } - } - - /** - * Dans le thread swing.... - * - * @param _relaunch l'exe a lancer apr\xE8s: si l'utilisateur a accept\xE9 la fermeture du projet - */ - public boolean saveAndCloseProjet(final Runnable _relaunch) { - final Runnable r = new Runnable() { - - public void run() { - closeProject(); - if (_relaunch != null) _relaunch.run(); - } - }; - boolean save = false; - if (isProjectModified()) { - final int i = CtuluLibDialog.confirmExitIfProjectisModified(getFrame()); - // l'utilisateur veut annuler l'op\xE9ration - if (i == JOptionPane.CANCEL_OPTION) { - FuLog.debug("FSI: close operation cancelled by user"); - return false; - } - save = (i == JOptionPane.OK_OPTION); - } - - FuLog.debug("FSI: close operation accepted and save option= " + save); - // pas de sauvegarde: on lance l'op\xE9ration suivante: - if (!save) { - r.run(); - } else { - // on initilialise le fichier de dest si n\xE9cessaire - setFileIfNeeded(); - if (project_.getParamsFile()==null) return false; - CtuluRunnable act = new CtuluRunnable(FudaaSaveLib.getActionSaveTitle(), this) { - - public boolean run(ProgressionInterface _prog) { - // le fichier peut etre null si l'utilisateur a refuse de pr\xE9ciser un fichier - // dans ce cas, on ne sauvegarde pas. - if (project_.getParamsFile() != null) { - setGlassPaneStop(); - FSigProjectPersistence.saveProject(MdlImplementation.this, project_, - project_.getParamsFile(), _prog); - updateRecentFiles(project_.getParamsFile()); - - unsetGlassPaneStop(); - return true; - } - else return false; - } - }; - // le r sera lance apres et dans le thread swing - act.setAfterRunnable(r, true); - act.run(); - return false; - } - return true; - } - - protected Runnable getSaveSwingRunnable(final File _paramFile) { - return new Runnable() { - - public void run() { - if (_paramFile != null) project_.setParamFile(_paramFile); - project_.setSaved(); - - } - }; - } - - /** - * Methode surcharg\xE9e pour les panneau de pr\xE9f\xE9rence. - */ - protected void buildPreferences(final List _frAddTab) { - _frAddTab.add(new BuUserPreferencesPanel(this)); - _frAddTab.add(new BuLanguagePreferencesPanel(this)); - _frAddTab.add(new BuDesktopPreferencesPanel(this)); - _frAddTab.add(new FudaaStartupExitPreferencesPanel(true)); - _frAddTab.add(new FudaaLookPreferencesPanel(this)); - _frAddTab.add(new BuBrowserPreferencesPanel(this)); - _frAddTab.add(new EbliMiseEnPagePreferencesPanel()); - } - - /** - * Cr\xE9ation du panneau des taches, dans la colonne de droite. - */ - protected void buildTaskView() { - final BuMainPanel mp = getMainPanel(); - final BuColumn lc = mp.getLeftColumn(); - lc.setFocusable(false); - final BuColumn rc = mp.getRightColumn(); - rc.setFocusable(false); - lc.setBorder(null); - // rc.setBorder(new EmptyBorder(0,2,0,2)); - BuTaskView taches = new BuTaskView(); - taches.setToolTipText(TrResource.getS("Les t\xE2ches en cours")); - final BuScrollPane sp = new BuScrollPane(taches); - sp.setPreferredSize(new Dimension(150, 80)); - sp.setToolTipText(TrResource.getS("Les t\xE2ches en cours")); - rc.addToggledComponent(BuResource.BU.getString("T\xE2ches"), "TOGGLE_TACHE", BuResource.BU.getToolIcon("tache"), sp, - true, this).setToolTipText(TrResource.getS("Cacher/Afficher les t\xE2ches")); - mp.setTaskView(taches); - } - - /** - * Sauvegarde des pr\xE9f\xE9rences de l'appli \xE0 la sortie. - * - * Remarque importante : Certaines infos sauv\xE9es par cette m\xE9thode sont relues - * par d'autres applications Fudaa, qui risquent alors de s'afficher de facon - * inattendue. - */ - protected void savePreferencesAndTerminate() { - final Point p = getFrame().getLocation(); - final Dimension d = getFrame().getSize(); - BuPreferences.BU.putIntegerProperty("window.x", p.x); - BuPreferences.BU.putIntegerProperty("window.y", p.y); - BuPreferences.BU.putIntegerProperty("window.w", d.width); - BuPreferences.BU.putIntegerProperty("window.h", d.height); - BuPreferences.BU.writeIniFile(); - - BuRegistry.unregister(this.getFrame()); - } - - /** - * Mise en place de l'application ava,nt affichage. - */ - public void init() { - super.init(); - // Pour forcer l'activation du command listener. - getUndoCmdListener(); - - removeUnusedActions(); - final BuMenuBar mb = getMainMenuBar(); - // on enleve le menu des look and feel : moche car tout n'est pas mis a jour -/* Issu de Fudaa-Prepro - final BuMenu mAide = (BuMenu) b.getMenu("MENU_AIDE"); - - mAide.add(TrLib.buildAideContextItem(this), 0); - TrLib.addJavawsForJnlp(mAide); - TrLib.addJava3DJMFTest(mAide);*/ - - setEnabledForAction("QUITTER", true); - setEnabledForAction("PREFERENCE", true); - setEnabledForAction("CREER", true); - setEnabledForAction("OUVRIR", true); - setEnabledForAction("IMPORTER", true); - setEnabledForAction("EXPORTER", true); - - BuMenuRecentFiles mr= (BuMenuRecentFiles)mb.getMenu("REOUVRIR"); - if (mr != null) { - mr.setPreferences(MdlPreferences.MDL); - mr.setResource(MdlResource.MDL); - mr.setEnabled(true); - } - -/* setEnabledForAction("MAJ", true); - setEnabledForAction("SEND_COMMENT", true); - setEnabledForAction("LAUNCH_JAVAWS", true); - final BuMenu mFichier = (BuMenu) b.getMenu("MENU_FICHIER"); - mFichier.addMenuItem(TrResource.getS("Fermer toutes les applications"), "CLOSE_ALL", BuResource.BU - .getIcon("fermer"), true, 0); - final BuToolBar tb = getMainToolBar(); - if (!isSupervisor()) { - - tb.addToolButton(TrResource.getSupervisorName(), TrResource.getS("ouvrir le superviseur"), "SUPERVISEUR", - TrResource.getSupervisorIcon(), true).setVisible(true); - - }*/ - // les menus exporter et importer sont construit dynamiquement -// b.getMenu(getExporterCmd()).addItemListener(this); - BuMenu mmImport = (BuMenu) mb.getMenu("IMPORTER"); - BuMenu mnExport = (BuMenu) mb.getMenu("EXPORTER"); - -// menu.addMenuItem(FSigImageImportAction.getCommonTitle(), "IMPORT_IMAGE", FSigImageImportAction.getCommonImage(), -// this).setEnabled(false); - mmImport.addMenuItem(FudaaLib.getS("Importer un projet"), "IMPORT_PROJECT", BuResource.BU.getMenuIcon("importer"), this) - .setEnabled(false); -// menu.addItemListener(this); - setEnabledForAction("IMPORT_PROJECT", true); - mmImport.setEnabled(true); - - BuMenuItem itExportData = new BuMenuItem(); - super.initExportDataButton(itExportData); - mnExport.add(itExportData); - -/* setEnabledForAction("RANGERICONES", true); - if (!isSupervisor()) { - final JComponent cp = getMainPanel().getMiddleComponent(); - if (cp instanceof JScrollPane) { - ScrollPaneSelector.installScrollPaneSelector((JScrollPane) cp); - } - }*/ - buildTaskView(); - } - - /** - * Suppression des commandes par d\xE9faut dans Fudaa. - */ - protected void removeUnusedActions() { -/* Issu de Fudaa-Prepro - final BuMenu r = (BuMenu) getMainMenuBar().getMenu("MENU_EDITION"); - if (r != null) { - r.removeAll(); - r.addMenuItem(BuResource.BU.getString("D\xE9faire"), "DEFAIRE", false, KeyEvent.VK_Z); - r.addMenuItem(BuResource.BU.getString("Refaire"), "REFAIRE", false).setAccelerator( - KeyStroke.getKeyStroke(KeyEvent.VK_Z, InputEvent.CTRL_MASK | InputEvent.SHIFT_MASK)); - // normalement Ctrl-Y - // r.addSeparator(); - // - r.addMenuItem(BuResource.BU.getString("Copier"), "COPIER", false, KeyEvent.VK_C); - r.addMenuItem(BuResource.BU.getString("Couper"), "COUPER", false, KeyEvent.VK_X); - r.addMenuItem(BuResource.BU.getString("Coller"), "COLLER", false, KeyEvent.VK_V); - // r.addMenuItem(BuResource.BU.getString("Dupliquer" ),"DUPLIQUER" ,false) - // .setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_V,KeyEvent.CTRL_MASK|KeyEvent.SHIFT_MASK)); - r.addSeparator(); - FSigLib.addSelectionAction(r, null); - // r.addMenuItem(BuResource.BU.getString("Remplacer..." ),"REMPLACER" - // ,false,KeyEvent.VK_R); - r.addSeparator(); - r.addMenuItem(BuResource.BU.getString("Pr\xE9f\xE9rences"), "PREFERENCE", false, KeyEvent.VK_F2); - addConsoleMenu(r); - final BuToolBar tb = getMainToolBar(); - BuActionRemover.removeAction(tb, "COUPER"); - BuActionRemover.removeAction(tb, "COLLER"); - BuActionRemover.removeAction(tb, "COPIER"); - BuActionRemover.removeAction(tb, "DUPLIQUER"); - BuActionRemover.removeAction(tb, "RANGERICONES"); - // BuActionRemover.removeAction(tb, "TOUTSELECTIONNER"); - BuActionRemover.removeAction(tb, "REMPLACER"); - - }*/ - /* - * removeAction("COUPER"); removeAction("COLLER"); removeAction("COPIER"); removeAction("DUPLIQUER"); - * removeAction("TOUTSELECTIONNER"); removeAction("REMPLACER"); - */ - removeAction("ASSISTANT"); -// removeAction("ASTUCE"); - removeAction("POINTEURAIDE"); - removeAction("INDEX_THEMA"); - removeAction("INDEX_ALPHA"); - removeAction("PROPRIETE"); - removeAction("PLEINECRAN"); - removeAction("VISIBLE_LEFTCOLUMN"); - } - - public void start() { - super.start(); - super.addFrameListLeft(); - createProject(true); - } - -} Copied: tags/FudaaModeleur_0_07/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlImplementation.java (from rev 4202, branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlImplementation.java) =================================================================== --- tags/FudaaModeleur_0_07/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlImplementation.java (rev 0) +++ tags/FudaaModeleur_0_07/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlImplementation.java 2008-11-12 10:11:48 UTC (rev 4203) @@ -0,0 +1,698 @@ +/* + * @creation 7 juin 07 + * @modification $Date: 2008/05/13 12:10:12 $ + * @license GNU General Public License 2 + * @copyright (c)1998-2001 CETMEF 2 bd Gambetta F-60231 Compiegne + * @mail de...@fu... + */ +package org.fudaa.fudaa.modeleur; + +import java.awt.Dimension; +import java.awt.EventQueue; +import java.awt.Point; +import java.awt.event.ActionEvent; +import java.beans.PropertyVetoException; +import java.io.File; +import java.io.IOException; +import java.net.URL; +import java.util.List; + +import javax.swing.Action; +import javax.swing.JComponent; +import javax.swing.JInternalFrame; +import javax.swing.JOptionPane; +import javax.swing.filechooser.FileFilter; + +import org.fudaa.ctulu.CtuluExportDataInterface; +import org.fudaa.ctulu.CtuluLib; +import org.fudaa.ctulu.CtuluLibFile; +import org.fudaa.ctulu.CtuluRunnable; +import org.fudaa.ctulu.CtuluTaskDelegate; +import org.fudaa.ctulu.ProgressionInterface; +import org.fudaa.ctulu.gui.CtuluDialogPanel; +import org.fudaa.ctulu.gui.CtuluFileChooserTestWritable; +import org.fudaa.ctulu.gui.CtuluHelpComponent; +import org.fudaa.ctulu.gui.CtuluLibDialog; +import org.fudaa.ebli.calque.ZEbliFilleCalques; +import org.fudaa.ebli.commun.EbliActionMap; +import org.fudaa.ebli.impression.EbliMiseEnPagePreferencesPanel; +import org.fudaa.ebli.ressource.EbliResource; +import org.fudaa.fudaa.commun.FudaaLib; +import org.fudaa.fudaa.commun.FudaaProjectStateListener; +import org.fudaa.fudaa.commun.FudaaProjetStateInterface; +import org.fudaa.fudaa.commun.aide.FudaaHelpPanel; +import org.fudaa.fudaa.commun.impl.FudaaCommonImplementation; +import org.fudaa.fudaa.commun.impl.FudaaGuiLib; +import org.fudaa.fudaa.commun.impl.FudaaLookPreferencesPanel; +import org.fudaa.fudaa.commun.impl.FudaaStartupExitPreferencesPanel; +import org.fudaa.fudaa.commun.save.FudaaSaveLib; +import org.fudaa.fudaa.commun.save.FudaaSaveZipLoader; +import org.fudaa.fudaa.sig.FSigLib; +import org.fudaa.fudaa.sig.FSigProjectPersistence; +import org.fudaa.fudaa.sig.FSigResource; +import org.fudaa.fudaa.tr.TrLauncherDefault; +import org.fudaa.fudaa.tr.common.TrProjectImportPanel; +import org.fudaa.fudaa.tr.common.TrProjectPersistence; +import org.fudaa.fudaa.tr.common.TrResource; + +import com.memoire.bu.BuBrowserPreferencesPanel; +import com.memoire.bu.BuColumn; +import com.memoire.bu.BuDesktopPreferencesPanel; +import com.memoire.bu.BuInformationsSoftware; +import com.memoire.bu.BuLanguagePreferencesPanel; +import com.memoire.bu.BuLib; +import com.memoire.bu.BuMainPanel; +import com.memoire.bu.BuMenu; +import com.memoire.bu.BuMenuBar; +import com.memoire.bu.BuMenuItem; +import com.memoire.bu.BuMenuRecentFiles; +import com.memoire.bu.BuPreferences; +import com.memoire.bu.BuRegistry; +import com.memoire.bu.BuResource; +import com.memoire.bu.BuScrollPane; +import com.memoire.bu.BuTaskView; +import com.memoire.bu.BuUserPreferencesPanel; +import com.memoire.fu.FuLog; + +/** + * La classe principale de mise en place de l'application, de gestion des + * actions, des \xE9tats de l'interface, etc. + * + * @author Bertrand Marchand + * @version $Id: MdlImplementation.java,v 1.1.2.9 2008/05/13 12:10:12 bmarchan Exp $ + */ +public class MdlImplementation extends FudaaCommonImplementation implements FudaaProjectStateListener { + + protected static BuInformationsSoftware isMdl_ = new BuInformationsSoftware(); + static { + isMdl_.name = "Modeleur"; + isMdl_.version = "0.07"; + isMdl_.date = "2008-11-12"; + isMdl_.rights = "Tous droits r\xE9serv\xE9s. CETMEF (c)1999-2008"; + isMdl_.license = "GPL2"; + isMdl_.languages = "fr,en"; + isMdl_.authors=new String[]{"F.Deniger, B.Marchand"}; + isMdl_.contact="nic...@eq..."; + isMdl_.http="http://www.fudaa.fr/mdl/"; + + isMdl_.logo = EbliResource.EBLI.getIcon("draw-palette"); + isMdl_.banner = BuResource.BU.getIcon("aproposde_32"); + } + + public static File getDestFile(File _init) { + return CtuluLibFile.appendExtensionIfNeeded(_init, getExtension()); + } + + public static String getExtension() { + return "mod.zip"; + } + + public static class MdlFileFilter extends FileFilter { + final String extension_ = '.' + getExtension(); + + public boolean accept(File _f) { + return _f != null && (_f.isDirectory() || _f.getName().endsWith(extension_)); + } + + public String getDescription() { + return FSigResource.FSIG.getString("Fudaa Modeleur (*.mod.zip)"); + } + + } + + public static BuInformationsSoftware informationsSoftware() { + return isMdl_; + } + + MdlFille2d currentFrame_; + MdlProjet project_; + public final static FileFilter FILTER = new MdlFileFilter(); + + public MdlImplementation() { + super(); + useNewHelp_ = false; + } + + private File chooseNewFile(boolean _saveDialog) { + return getDestFile(chooseFile(_saveDialog)); + } + + private File chooseFile(boolean _saveDialog) { + return FudaaGuiLib.ouvrirFileChooser(FSigResource.FSIG.getString("Fichier modeleur"), FILTER, this.getFrame(), + _saveDialog, _saveDialog ? new CtuluFileChooserTestWritable(this) : null); + } + + protected void setFileIfNeeded() { + if (project_.getParamsFile() == null) { + project_.setParamFile(chooseNewFile(true)); + } + } + + public void projectStateChanged(FudaaProjetStateInterface _proj) { + updateActionsState(); + } + + /** + * Mise \xE0 jour de l'\xE9tat des boutons. + */ + void updateActionsState() { + FuLog.trace("Project state change"); + + boolean bprjOpen=project_!=null; + boolean bprjModPar=bprjOpen && project_.getProjectState().isParamsModified(); + boolean buiMod=bprjOpen && project_.getProjectState().isUIModified(); + + setEnabledForAction("ENREGISTRER", bprjModPar | buiMod); + setEnabledForAction("ENREGISTRERSOUS", bprjOpen); + setEnabledForAction("FERMER", bprjOpen); + setEnabledForAction("IMPORT_PROJECT", bprjOpen); + setEnabledForAction(CtuluExportDataInterface.EXPORT_CMD, bprjOpen); + } + + void createNewInternalFrame(/*boolean _add*/) { + currentFrame_ = new MdlFille2d(this); + /*if (_add) */addInternalFrame(currentFrame_); + } + + protected boolean buildExportDataToolIcon() { + return true; + } + + protected boolean buildFudaaReportTool() { + return true; + } + + protected boolean buildImageToolIcon() { + return true; + } + + /** + * Ferme le projet, ferme les fenetres associ\xE9s, sans demande d'enregistrement en cas + * de modif (ce controle a \xE9t\xE9 effectu\xE9 en amont). + */ + protected void closeProject() { + if (project_==null) return; + project_.close(); + try { + currentFrame_.setClosed(true); + } catch (PropertyVetoException _evt) { + FuLog.error(_evt); + + } + removeInternalFrames(getAllInternalFrames()); +// removeInternalFrame(currentFrame_); + getMainMenuBar().repaint(); + project_ = null; + } + + protected void createProject(final boolean _add) { + project_ = new MdlProjet(); + project_.setOpening(true); + if (_add) createNewInternalFrame(); + else ((MdlVisuPanel)currentFrame_.getVisuPanel()).initCalques(false); + project_.install(this); + BuLib.invokeLater(new Runnable() { + + public void run() { + project_.setOpening(false); +// changeSaveActions(false); + updateActionsState(); + project_.setSaved(); + getMainMenuBar().repaint(); + } + }); + } + + protected boolean useScrollInBuDesktop() { + return true; + } + + public void actionPerformed(ActionEvent _evt) { + final String action = _evt.getActionCommand(); + if (action == null) { + return; + } + if ("OUVRIR".equals(action)) { + ouvrir(null); + } else if ("ENREGISTRER".equals(action)) { + save(); + } else if ("ENREGISTRERSOUS".equals(action)) { + saveAs(); + } else if ("FERMER".equals(action)) { + close(); + } else if ("CREER".equals(action)) { + create(); + } else if ("IMPORT_PROJECT".equals(action)) { + importProject(); + } else if ("AIDE_INDEX".equals(action)) { + displayHelp(getAideIndexUrl()); + } else if (action.startsWith("TOGGLE")) { + final BuColumn c = getMainPanel().getRightColumn(); + final JComponent comp = c.getToggleComponent(action); + if (comp != null) { + comp.setVisible(!comp.isVisible()); + c.revalidate(); + } + } else if (action.startsWith("REOUVRIR")) { + FuLog.trace(action.substring(9,action.length()-1)); + ouvrir(new File(action.substring(9,action.length()-1))); + } else + super.actionPerformed(_evt); + } + + /** + * Met a jour les fichiers recents chaque fois que necessaire. + */ + private void updateRecentFiles(File _fichier) { + getMainMenuBar().addRecentFile(_fichier.getPath(),null); + MdlPreferences.MDL.writeIniFile(); + } + + /** + * Surcharge de la m\xE9thode pour pouvoir sauvegarder les pr\xE9f\xE9rences. + */ + public void exit() { + confirmExit(); + } + + /** + * Confirmation de la sortie avec ou sans sauvegarde. + */ + public boolean confirmExit() { + if (!FudaaStartupExitPreferencesPanel.isExitConfirmed() || + question(BuResource.BU.getString("Quitter"), BuResource.BU + .getString("Voulez-vous vraiment quitter ce logiciel ?"))) { + return saveAndCloseProjet(new Runnable() { + // Lanc\xE9 apr\xE8s la sauvegarde, si op\xE9ration de sauvegarde concluante ou si pas de sauvegarde demand\xE9e. + public void run() { + savePreferencesAndTerminate(); + } + }); + } + return true; + } + + public void create() { + saveAndCloseProjet(new Runnable() { + public void run() { + createProject(true); + } + }); + } + + public void close() { + saveAndCloseProjet(null); + updateActionsState(); + } + + protected String getAideIndexUrl() { + return getHelpDir() + "modeleur/index.html"; + } + + public BuPreferences getApplicationPreferences() { + return null; + } + + public BuInformationsSoftware getInformationsSoftware() { + return informationsSoftware(); + } + + /** + * Ouvre un nouveau projet. Peut demander la sauvegarde du projet pr\xE9c\xE9demment ouvert si + * existant. + * @param _f Le fichier projet \xE0 ouvrir. null, si le fichier doit etre choisi par l'utilisateur. + */ + public void ouvrir(final File _f) { + if (isProjectModified()) { + saveAndCloseProjet(new Runnable() { + + public void run() { + ouvrir(_f); + } + }); + return; + } + + closeProject(); + + final File f = CtuluLibFile.exists(_f) ? _f : chooseFile(false); + if (f==null) return; // Abandon utilisateur. + + createProject(false); + setGlassPaneStop(); + new CtuluRunnable(BuResource.BU.getString("Ouvrir"), MdlImplementation.this) { + + public boolean run(ProgressionInterface _proj) { + project_.setOpening(true); + Runnable r = null; + try { + r = FudaaSaveLib.restoreFille(MdlImplementation.this, currentFrame_, _proj, f); + project_.setParamFile(f); + + } finally { + + final Runnable swingRun = r; + BuLib.invokeLater(new Runnable() { + + public void run() { + try { + addInternalFrame(currentFrame_); + if (swingRun != null) swingRun.run(); + + // le projet a ete install\xE9: on enl\xE8ve les flag de modification + project_.setOpening(false); + project_.setSaved(); + if (swingRun == null) { + MdlImplementation.this.warn(BuResource.BU.getString("Ouvrir"), FSigResource.FSIG + .getString("Le projet n'a pas \xE9t\xE9 ouvert!")); + } + else { + updateRecentFiles(project_.getParamsFile()); + } + } finally { + unsetGlassPaneStop(); + + } + } + + }); + + } + return r != null; + } + }.run(); + } + + public void save() { + if (project_.getParamsFile() != null) { + CtuluRunnable act = new CtuluRunnable(FudaaSaveLib.getActionSaveTitle(), this) { + + public boolean run(ProgressionInterface _proj) { + if (FSigProjectPersistence.saveProject(MdlImplementation.this, project_, project_.getParamsFile(), _proj)) { + updateRecentFiles(project_.getParamsFile()); + return true; + } + return false; + } + }; + act.setAfterRunnable(getSaveSwingRunnable(project_.getParamsFile()), true); + act.run(); + } else + saveAs(); + } + + public void saveAs() { + final File f = chooseNewFile(true); + if (f == null) return; + + CtuluRunnable act = new CtuluRunnable(FudaaSaveLib.getActionSaveTitle(), this) { + + public boolean run(ProgressionInterface _proj) { + if (FSigProjectPersistence.saveProject(MdlImplementation.this, project_, f, _proj)) { + updateRecentFiles(f); + return true; + } + return false; + } + }; + act.setAfterRunnable(getSaveSwingRunnable(f), true); + act.run(); + } + + protected boolean isProjectModified() { + return project_ != null + && (project_.getProjectState().isParamsModified() || project_.getProjectState().isUIModified()); + } + + public void importProject() { + MdlProjectImportPanel pn=new MdlProjectImportPanel(); + if (CtuluDialogPanel.isOkResponse(pn.afficheModale(getFrame(), "Import d'un projet"))) { + FudaaSaveZipLoader loader = null; + try { + loader = pn.getLoader(); + final FudaaSaveZipLoader finalLoader = loader; + final CtuluTaskDelegate createTask = createTask("Import d'un projet"); +// FIXME BM: Suppression de la tache dans un thread diff\xE9rent, car l'appli se bloque +// Probable pb de deadlock. +// createTask.start(new Runnable() { +// public void run() { + FudaaSaveLib.restoreAndLaunch(MdlImplementation.this, currentFrame_, createTask.getStateReceiver(), finalLoader); +// } +// }); + } catch (final IOException _evt) { + FuLog.error(_evt); + + } + } + } + + /** + * Dans le thread swing.... + * + * @param _relaunch l'exe a lancer apr\xE8s: si l'utilisateur a accept\xE9 la fermeture du projet + */ + public boolean saveAndCloseProjet(final Runnable _relaunch) { + final Runnable r = new Runnable() { + + public void run() { + closeProject(); + if (_relaunch != null) _relaunch.run(); + } + }; + boolean save = false; + if (isProjectModified()) { + final int i = CtuluLibDialog.confirmExitIfProjectisModified(getFrame()); + // l'utilisateur veut annuler l'op\xE9ration + if (i == JOptionPane.CANCEL_OPTION) { + FuLog.debug("FSI: close operation cancelled by user"); + return false; + } + save = (i == JOptionPane.OK_OPTION); + } + + FuLog.debug("FSI: close operation accepted and save option= " + save); + // pas de sauvegarde: on lance l'op\xE9ration suivante: + if (!save) { + r.run(); + } else { + // on initilialise le fichier de dest si n\xE9cessaire + setFileIfNeeded(); + if (project_.getParamsFile()==null) return false; + CtuluRunnable act = new CtuluRunnable(FudaaSaveLib.getActionSaveTitle(), this) { + + public boolean run(ProgressionInterface _prog) { + // le fichier peut etre null si l'utilisateur a refuse de pr\xE9ciser un fichier + // dans ce cas, on ne sauvegarde pas. + if (project_.getParamsFile() != null) { + setGlassPaneStop(); + FSigProjectPersistence.saveProject(MdlImplementation.this, project_, + project_.getParamsFile(), _prog); + updateRecentFiles(project_.getParamsFile()); + + unsetGlassPaneStop(); + return true; + } + else return false; + } + }; + // le r sera lance apres et dans le thread swing + act.setAfterRunnable(r, true); + act.run(); + return false; + } + return true; + } + + protected Runnable getSaveSwingRunnable(final File _paramFile) { + return new Runnable() { + + public void run() { + if (_paramFile != null) project_.setParamFile(_paramFile); + project_.setSaved(); + + } + }; + } + + /** + * Methode surcharg\xE9e pour les panneau de pr\xE9f\xE9rence. + */ + protected void buildPreferences(final List _frAddTab) { + _frAddTab.add(new BuUserPreferencesPanel(this)); + _frAddTab.add(new BuLanguagePreferencesPanel(this)); + _frAddTab.add(new BuDesktopPreferencesPanel(this)); + _frAddTab.add(new FudaaStartupExitPreferencesPanel(true)); + _frAddTab.add(new FudaaLookPreferencesPanel(this)); + _frAddTab.add(new BuBrowserPreferencesPanel(this)); + _frAddTab.add(new EbliMiseEnPagePreferencesPanel()); + } + + /** + * Cr\xE9ation du panneau des taches, dans la colonne de droite. + */ + protected void buildTaskView() { + final BuMainPanel mp = getMainPanel(); + final BuColumn lc = mp.getLeftColumn(); + lc.setFocusable(false); + final BuColumn rc = mp.getRightColumn(); + rc.setFocusable(false); + lc.setBorder(null); + // rc.setBorder(new EmptyBorder(0,2,0,2)); + BuTaskView taches = new BuTaskView(); + taches.setToolTipText(TrResource.getS("Les t\xE2ches en cours")); + final BuScrollPane sp = new BuScrollPane(taches); + sp.setPreferredSize(new Dimension(150, 80)); + sp.setToolTipText(TrResource.getS("Les t\xE2ches en cours")); + rc.addToggledComponent(BuResource.BU.getString("T\xE2ches"), "TOGGLE_TACHE", BuResource.BU.getToolIcon("tache"), sp, + true, this).setToolTipText(TrResource.getS("Cacher/Afficher les t\xE2ches")); + mp.setTaskView(taches); + } + + /** + * Sauvegarde des pr\xE9f\xE9rences de l'appli \xE0 la sortie. + * + * Remarque importante : Certaines infos sauv\xE9es par cette m\xE9thode sont relues + * par d'autres applications Fudaa, qui risquent alors de s'afficher de facon + * inattendue. + */ + protected void savePreferencesAndTerminate() { + final Point p = getFrame().getLocation(); + final Dimension d = getFrame().getSize(); + BuPreferences.BU.putIntegerProperty("window.x", p.x); + BuPreferences.BU.putIntegerProperty("window.y", p.y); + BuPreferences.BU.putIntegerProperty("window.w", d.width); + BuPreferences.BU.putIntegerProperty("window.h", d.height); + BuPreferences.BU.writeIniFile(); + + BuRegistry.unregister(this.getFrame()); + } + + /** + * Mise en place de l'application ava,nt affichage. + */ + public void init() { + super.init(); + // Pour forcer l'activation du command listener. + getUndoCmdListener(); + + removeUnusedActions(); + final BuMenuBar mb = getMainMenuBar(); + // on enleve le menu des look and feel : moche car tout n'est pas mis a jour +/* Issu de Fudaa-Prepro + final BuMenu mAide = (BuMenu) b.getMenu("MENU_AIDE"); + + mAide.add(TrLib.buildAideContextItem(this), 0); + TrLib.addJavawsForJnlp(mAide); + TrLib.addJava3DJMFTest(mAide);*/ + + setEnabledForAction("QUITTER", true); + setEnabledForAction("PREFERENCE", true); + setEnabledForAction("CREER", true); + setEnabledForAction("OUVRIR", true); + setEnabledForAction("IMPORTER", true); + setEnabledForAction("EXPORTER", true); + + BuMenuRecentFiles mr= (BuMenuRecentFiles)mb.getMenu("REOUVRIR"); + if (mr != null) { + mr.setPreferences(MdlPreferences.MDL); + mr.setResource(MdlResource.MDL); + mr.setEnabled(true); + } + +/* setEnabledForAction("MAJ", true); + setEnabledForAction("SEND_COMMENT", true); + setEnabledForAction("LAUNCH_JAVAWS", true); + final BuMenu mFichier = (BuMenu) b.getMenu("MENU_FICHIER"); + mFichier.addMenuItem(TrResource.getS("Fermer toutes les applications"), "CLOSE_ALL", BuResource.BU + .getIcon("fermer"), true, 0); + final BuToolBar tb = getMainToolBar(); + if (!isSupervisor()) { + + tb.addToolButton(TrResource.getSupervisorName(), TrResource.getS("ouvrir le superviseur"), "SUPERVISEUR", + TrResource.getSupervisorIcon(), true).setVisible(true); + + }*/ + // les menus exporter et importer sont construit dynamiquement +// b.getMenu(getExporterCmd()).addItemListener(this); + BuMenu mmImport = (BuMenu) mb.getMenu("IMPORTER"); + BuMenu mnExport = (BuMenu) mb.getMenu("EXPORTER"); + +// menu.addMenuItem(FSigImageImportAction.getCommonTitle(), "IMPORT_IMAGE", FSigImageImportAction.getCommonImage(), +// this).setEnabled(false); + mmImport.addMenuItem(FudaaLib.getS("Importer un projet"), "IMPORT_PROJECT", BuResource.BU.getMenuIcon("importer"), this) + .setEnabled(false); +// menu.addItemListener(this); + setEnabledForAction("IMPORT_PROJECT", true); + mmImport.setEnabled(true); + + BuMenuItem itExportData = new BuMenuItem(); + super.initExportDataButton(itExportData); + mnExport.add(itExportData); + +/* setEnabledForAction("RANGERICONES", true); + if (!isSupervisor()) { + final JComponent cp = getMainPanel().getMiddleComponent(); + if (cp instanceof JScrollPane) { + ScrollPaneSelector.installScrollPaneSelector((JScrollPane) cp); + } + }*/ + buildTaskView(); + } + + /** + * Suppression des commandes par d\xE9faut dans Fudaa. + */ + protected void removeUnusedActions() { +/* Issu de Fudaa-Prepro + final BuMenu r = (BuMenu) getMainMenuBar().getMenu("MENU_EDITION"); + if (r != null) { + r.removeAll(); + r.addMenuItem(BuResource.BU.getString("D\xE9faire"), "DEFAIRE", false, KeyEvent.VK_Z); + r.addMenuItem(BuResource.BU.getString("Refaire"), "REFAIRE", false).setAccelerator( + KeyStroke.getKeyStroke(KeyEvent.VK_Z, InputEvent.CTRL_MASK | InputEvent.SHIFT_MASK)); + // normalement Ctrl-Y + // r.addSeparator(); + // + r.addMenuItem(BuResource.BU.getString("Copier"), "COPIER", false, KeyEvent.VK_C); + r.addMenuItem(BuResource.BU.getString("Couper"), "COUPER", false, KeyEvent.VK_X); + r.addMenuItem(BuResource.BU.getString("Coller"), "COLLER", false, KeyEvent.VK_V); + // r.addMenuItem(BuResource.BU.getString("Dupliquer" ),"DUPLIQUER" ,false) + // .setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_V,KeyEvent.CTRL_MASK|KeyEvent.SHIFT_MASK)); + r.addSeparator(); + FSigLib.addSelectionAction(r, null); + // r.addMenuItem(BuResource.BU.getString("Remplacer..." ),"REMPLACER" + // ,false,KeyEvent.VK_R); + r.addSeparator(); + r.addMenuItem(BuResource.BU.getString("Pr\xE9f\xE9rences"), "PREFERENCE", false, KeyEvent.VK_F2); + addConsoleMenu(r); + final BuToolBar tb = getMainToolBar(); + BuActionRemover.removeAction(tb, "COUPER"); + BuActionRemover.removeAction(tb, "COLLER"); + BuActionRemover.removeAction(tb, "COPIER"); + BuActionRemover.removeAction(tb, "DUPLIQUER"); + BuActionRemover.removeAction(tb, "RANGERICONES"); + // BuActionRemover.removeAction(tb, "TOUTSELECTIONNER"); + BuActionRemover.removeAction(tb, "REMPLACER"); + + }*/ + /* + * removeAction("COUPER"); removeAction("COLLER"); removeAction("COPIER"); removeAction("DUPLIQUER"); + * removeAction("TOUTSELECTIONNER"); removeAction("REMPLACER"); + */ + removeAction("ASSISTANT"); +// removeAction("ASTUCE"); + removeAction("POINTEURAIDE"); + removeAction("INDEX_THEMA"); + removeAction("INDEX_ALPHA"); + removeAction("PROPRIETE"); + removeAction("PLEINECRAN"); + removeAction("VISIBLE_LEFTCOLUMN"); + } + + public void start() { + super.start(); + super.addFrameListLeft(); + createProject(true); + } + +} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |