Datasource launcher may be switched off
authorn.hoffmann <n.hoffmann@localhost>
Wed, 8 Jul 2009 17:22:51 +0000 (17:22 +0000)
committern.hoffmann <n.hoffmann@localhost>
Wed, 8 Jul 2009 17:22:51 +0000 (17:22 +0000)
.gitattributes
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/datasource/DatasourceLauncherDialog.java [moved from taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/datasource/ChooseDatasourceDialog.java with 61% similarity]
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/preference/PreferencesUtil.java
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/store/CdmStore.java

index 3ef1508245be365dbfc43839456669cdbc243c0e..37876a09c217ac70e981ce7d28093cf516bb4e41 100644 (file)
@@ -998,7 +998,7 @@ taxeditor-store/icons/warn_tsk.gif -text
 taxeditor-store/plugin.xml -text
 taxeditor-store/pom.xml -text
 taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/datasource/CdmDataSourceRepository.java -text
-taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/datasource/ChooseDatasourceDialog.java -text
+taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/datasource/DatasourceLauncherDialog.java -text
 taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/datasource/handler/AbstractDataSourceHandler.java -text
 taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/datasource/handler/ChangeConnectionHandler.java -text
 taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/datasource/handler/CreateDataSourceHandler.java -text
similarity index 61%
rename from taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/datasource/ChooseDatasourceDialog.java
rename to taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/datasource/DatasourceLauncherDialog.java
index 37627e9fad5bc6443f2981323b38387d81f1208d..644dc07fcaf4e17bc47aee0195b1aae57ee5d426 100644 (file)
@@ -13,48 +13,49 @@ package eu.etaxonomy.taxeditor.datasource;
 import java.util.List;
 
 import org.apache.log4j.Logger;
-import org.eclipse.jface.dialogs.Dialog;
 import org.eclipse.jface.dialogs.IDialogConstants;
+import org.eclipse.jface.dialogs.TitleAreaDialog;
 import org.eclipse.swt.SWT;
+import org.eclipse.swt.custom.CLabel;
+import org.eclipse.swt.events.MouseAdapter;
+import org.eclipse.swt.events.MouseEvent;
 import org.eclipse.swt.events.SelectionAdapter;
 import org.eclipse.swt.events.SelectionEvent;
 import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.layout.RowLayout;
 import org.eclipse.swt.widgets.Button;
 import org.eclipse.swt.widgets.Combo;
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Label;
 import org.eclipse.swt.widgets.Shell;
 
 import eu.etaxonomy.cdm.database.ICdmDataSource;
+import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 
 /**
  * @author n.hoffmann
  * @created 06.07.2009
  * @version 1.0
  */
-public class ChooseDatasourceDialog extends Dialog {
+public class DatasourceLauncherDialog extends TitleAreaDialog {
 
 
        private static final Logger logger = Logger
-                       .getLogger(ChooseDatasourceDialog.class);
+                       .getLogger(DatasourceLauncherDialog.class);
        private Combo combo_dataSources;
        private int selection;
-       private String title;
-       private String message;
        private List<ICdmDataSource> dataSources;
        private Button okButton;
+       private Button button_toggle;
        
        /**
         * @param parentShell
         */
-       public ChooseDatasourceDialog(Shell parentShell) {
+       public DatasourceLauncherDialog(Shell parentShell) {
                super(parentShell);
-               title = "Choose Datasource";
-               message = "Choose a data source to connect to. Cancel will close the editor again.";
-               
-               dataSources = CdmDataSourceRepository.getDefault().getAll();    
                
+               dataSources = CdmDataSourceRepository.getDefault().getAll();
                selection = -1;
                String lastUsedDataSourceName = CdmDataSourceRepository.getDefault().getLastUsedDataSourceName();
                for(ICdmDataSource dataSource : dataSources){
@@ -63,27 +64,42 @@ public class ChooseDatasourceDialog extends Dialog {
                                break;
                        }
                }
+
+               
        }
+       
+       /*
+        * (non-Javadoc)
+        * @see org.eclipse.jface.dialogs.TitleAreaDialog#createContents(org.eclipse.swt.widgets.Composite)
+        */
+       protected Control createContents(Composite parent) {
+           Control contents = super.createContents(parent);
+
+               setTitle("Choose Datasource");
+               setMessage("Choose a data source to connect to");
+               
+               this.getShell().setText("Datasource Launcher");
+               
+           return contents;
+         }
 
        /* (non-Javadoc)
         * @see org.eclipse.jface.dialogs.Dialog#createDialogArea(org.eclipse.swt.widgets.Composite)
         */
        @Override
        protected Control createDialogArea(Composite parent) {
-               
+        Composite container = (Composite) super.createDialogArea(parent);
+        
         // create composite
-        Composite composite = (Composite) super.createDialogArea(parent);
-        // create message
-        if (message != null) {
-            Label label = new Label(composite, SWT.WRAP);
-            label.setText(message);
-            GridData data = new GridData(GridData.GRAB_HORIZONTAL
-                    | GridData.GRAB_VERTICAL | GridData.HORIZONTAL_ALIGN_FILL
-                    | GridData.VERTICAL_ALIGN_CENTER);
-            data.widthHint = convertHorizontalDLUsToPixels(IDialogConstants.MINIMUM_MESSAGE_AREA_WIDTH);
-            label.setLayoutData(data);
-            label.setFont(parent.getFont());
-        }
+        Composite composite = new Composite(container, SWT.NULL);
+        composite.setLayoutData(new GridData(GridData.FILL_BOTH));
+        
+        GridLayout layout = new GridLayout();
+        layout.numColumns = 2;
+        composite.setLayout(layout);
+        
+        final CLabel label_dataSources = new CLabel(composite, SWT.NULL); 
+        label_dataSources.setText("Datasource:");
         
                combo_dataSources = new Combo(composite, SWT.DROP_DOWN);
                combo_dataSources.setLayoutData(new GridData(GridData.GRAB_HORIZONTAL
@@ -107,6 +123,26 @@ public class ChooseDatasourceDialog extends Dialog {
                
                combo_dataSources.select(selection);
                
+               Composite toggle = new Composite(composite, SWT.NULL);
+               toggle.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 2, 1));
+               toggle.setLayout(new RowLayout(SWT.HORIZONTAL));
+               
+               button_toggle = new Button(toggle, SWT.CHECK);          
+               
+               CLabel label_info = new CLabel(toggle, SWT.NULL);
+               label_info.setText("Use this as the default and do not ask me again");
+               
+               button_toggle.addMouseListener(new MouseAdapter(){
+
+                       /* (non-Javadoc)
+                        * @see org.eclipse.swt.events.MouseAdapter#mouseDown(org.eclipse.swt.events.MouseEvent)
+                        */
+                       @Override
+                       public void mouseUp(MouseEvent e) {
+                               PreferencesUtil.getPreferenceStore().setValue(PreferencesUtil.HIDE_DATASOURCE_CHOOSER, true);
+                       }
+               });
+               
         applyDialogFont(composite);
         return composite;
        }
@@ -126,18 +162,6 @@ public class ChooseDatasourceDialog extends Dialog {
         // button
         combo_dataSources.setFocus();
     }
-       
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.jface.window.Window#configureShell(org.eclipse.swt.widgets.Shell)
-     */
-    protected void configureShell(Shell shell) {
-        super.configureShell(shell);
-        if (title != null) {
-                       shell.setText(title);
-               }
-    }
     
        /* (non-Javadoc)
         * @see org.eclipse.jface.dialogs.Dialog#okPressed()
index 0d0aa20846f6ba59a3a1ac99d89c256fd144f2ec..37a8ab5a32860cd04091a9731a37592b2f469c75 100644 (file)
@@ -50,6 +50,8 @@ public class PreferencesUtil {
        public static final String TAXON_SERVICE_CONFIGURATOR_SYNONYMS = "taxonServiceConfigurator.doSynonyms";\r
        public static final String TAXON_SERVICE_CONFIGURATOR_NAMES = "taxonServiceConfigurator.doNamesWithoutTaxa";\r
        public static final String TAXON_SERVICE_CONFIGURATOR_COMMON_NAMES = "taxonServiceConfigurator.doTaxaByCommonNames";\r
+\r
+       public static final String HIDE_DATASOURCE_CHOOSER = "dataSourceChooser.hide";\r
        \r
        /**\r
         * \r
index 69bc6504c8c5b04c7749bfdfc8302143e1525da2..2b05d45835409f5b3ea0a93b5ebcbc90a2ad3f06 100644 (file)
@@ -16,10 +16,7 @@ import java.util.UUID;
 
 import org.apache.log4j.Logger;
 import org.eclipse.core.runtime.Status;
-import org.springframework.security.Authentication;
-import org.springframework.security.context.SecurityContextHolder;
 import org.springframework.security.providers.ProviderManager;
-import org.springframework.security.providers.UsernamePasswordAuthenticationToken;
 
 import eu.etaxonomy.cdm.api.application.CdmApplicationController;
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
@@ -34,7 +31,6 @@ import eu.etaxonomy.cdm.database.DbSchemaValidation;
 import eu.etaxonomy.cdm.database.ICdmDataSource;
 import eu.etaxonomy.cdm.model.common.IdentifiableEntity;
 import eu.etaxonomy.cdm.model.common.Language;
-import eu.etaxonomy.cdm.model.common.User;
 import eu.etaxonomy.cdm.model.name.TaxonNameBase;
 import eu.etaxonomy.cdm.model.reference.Article;
 import eu.etaxonomy.cdm.model.reference.Book;
@@ -45,7 +41,8 @@ import eu.etaxonomy.cdm.model.taxon.Taxon;
 import eu.etaxonomy.cdm.model.taxon.TaxonomicTree;
 import eu.etaxonomy.cdm.persistence.query.MatchMode;
 import eu.etaxonomy.taxeditor.datasource.CdmDataSourceRepository;
-import eu.etaxonomy.taxeditor.datasource.ChooseDatasourceDialog;
+import eu.etaxonomy.taxeditor.datasource.DatasourceLauncherDialog;
+import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 
 /**
  * This implementation of ICdmDataRepository depends on hibernate sessions to store the data correctly 
@@ -94,8 +91,9 @@ public class CdmStore{
                        logger.info("Initializing application context ...");
                        
                        // Prompt user for datasource if there are more than one
-                       if(CdmDataSourceRepository.getDefault().getAll().size() > 1){
-                               ChooseDatasourceDialog chooseDataSource = new ChooseDatasourceDialog(StoreUtil.getShell());
+                       if(! PreferencesUtil.getPreferenceStore().getBoolean(PreferencesUtil.HIDE_DATASOURCE_CHOOSER) 
+                               && CdmDataSourceRepository.getDefault().getAll().size() > 1){
+                               DatasourceLauncherDialog chooseDataSource = new DatasourceLauncherDialog(StoreUtil.getShell());
                                if(chooseDataSource.open() == Status.OK){
                                        instance = initialize(applicationContextBean);