[jboss-cvs] jbosside/hibernatetools/plugins/org.hibernate.eclipse.mapper/src/org/hibernate/eclipse/mapper/editors ...

Max Rydahl Andersen mandersen at jboss.com
Tue Jan 23 11:01:20 EST 2007


  User: mandersen
  Date: 07/01/23 11:01:20

  Modified:    hibernatetools/plugins/org.hibernate.eclipse.mapper/src/org/hibernate/eclipse/mapper/editors  
                        ReverseEngineeringEditor.java
  Added:       hibernatetools/plugins/org.hibernate.eclipse.mapper/src/org/hibernate/eclipse/mapper/editors  
                        ChooseConsoleConfigurationDialog.java
  Log:
  HBX-857 reveng dialog about missing console config is misleading
  
  Revision  Changes    Path
  1.19      +24 -3     jbosside/hibernatetools/plugins/org.hibernate.eclipse.mapper/src/org/hibernate/eclipse/mapper/editors/ReverseEngineeringEditor.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: ReverseEngineeringEditor.java
  ===================================================================
  RCS file: /cvsroot/jboss/jbosside/hibernatetools/plugins/org.hibernate.eclipse.mapper/src/org/hibernate/eclipse/mapper/editors/ReverseEngineeringEditor.java,v
  retrieving revision 1.18
  retrieving revision 1.19
  diff -u -b -r1.18 -r1.19
  --- ReverseEngineeringEditor.java	27 Nov 2006 15:30:27 -0000	1.18
  +++ ReverseEngineeringEditor.java	23 Jan 2007 16:01:20 -0000	1.19
  @@ -55,6 +55,7 @@
   import org.hibernate.eclipse.mapper.editors.xpl.XMLFormEditorPart;
   import org.hibernate.eclipse.mapper.model.DOMReverseEngineeringDefinition;
   import org.hibernate.eclipse.nature.HibernateNature;
  +import org.hibernate.util.StringHelper;
   import org.w3c.dom.Document;
   
   public class ReverseEngineeringEditor extends XMLFormEditorPart {
  @@ -158,10 +159,15 @@
   	public IReverseEngineeringDefinition getReverseEngineeringDefinition() {
   		return definition;
   	}
  +	
   	public String getConsoleConfigurationName() {
   		return overviewsPage.getConsoleConfigName();
   	}
   	
  +	protected void setConsoleConfigurationName(String name) {
  +		overviewsPage.setConsoleConfigName(name);
  +	}
  +	
   	public HibernateNature getHibernateNature() throws CoreException {
   		if(getEditorInput()!=null) {
   			IJavaProject project = ProjectUtils.findJavaProject(getEditorInput());
  @@ -174,10 +180,15 @@
   	public LazyDatabaseSchema getLazyDatabaseSchema() {
   		try {
   			ConsoleConfiguration configuration = KnownConfigurations.getInstance().find( getConsoleConfigurationName() );
  +			if(configuration == null) {
  +				configuration = askForConsoleConfiguration();
   			if(configuration==null) {
  -				MessageDialog.openInformation(getContainer().getShell(), "No console configuration", "No console configuration found.\n Select a valid one on the overview page");
   				return null;
  +				} else {
  +					setConsoleConfigurationName(configuration.getName());
  +				}
   			}
  +			 
   			ITableFilter[] tableFilters = getReverseEngineeringDefinition().getTableFilters();
   			Configuration cfg = configuration.buildWith(null, false);
   			Settings settings = configuration.getSettings(cfg);
  @@ -224,4 +235,14 @@
   		}
   	}
   	
  +	private ConsoleConfiguration askForConsoleConfiguration() {
  +		ChooseConsoleConfigurationDialog dialog = new ChooseConsoleConfigurationDialog(getContainer().getShell(),null);
  +		dialog.prompt();
  +		if(dialog.getSelectedConfigurationName()==null) {
  +			return null;
  +		} else {
  +			return KnownConfigurations.getInstance().find( dialog.getSelectedConfigurationName() ); // TODO: double check to see if an result is actually returned ?
  +		}		
  +	}
  +	
   }
  \ No newline at end of file
  
  
  
  1.1      date: 2007/01/23 16:01:20;  author: mandersen;  state: Exp;jbosside/hibernatetools/plugins/org.hibernate.eclipse.mapper/src/org/hibernate/eclipse/mapper/editors/ChooseConsoleConfigurationDialog.java
  
  Index: ChooseConsoleConfigurationDialog.java
  ===================================================================
  package org.hibernate.eclipse.mapper.editors;
  
  import org.eclipse.jface.dialogs.Dialog;
  import org.eclipse.jface.dialogs.IDialogConstants;
  import org.eclipse.jface.dialogs.TitleAreaDialog;
  import org.eclipse.jface.window.Window;
  import org.eclipse.swt.SWT;
  import org.eclipse.swt.events.ModifyEvent;
  import org.eclipse.swt.events.ModifyListener;
  import org.eclipse.swt.layout.GridData;
  import org.eclipse.swt.layout.GridLayout;
  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 org.hibernate.console.ConsoleConfiguration;
  import org.hibernate.console.KnownConfigurations;
  
  public class ChooseConsoleConfigurationDialog extends TitleAreaDialog {
  	
  	private Combo text;
  
  	String initialDefault;
  	String selectedConfigurationName;
  	
  	public ChooseConsoleConfigurationDialog(Shell shell, String initialDefault) {
  		super(shell);
  		this.initialDefault = initialDefault;
  	}
  	
      public void prompt() {
      	open();
  
      	if (getReturnCode() == CANCEL) {
      		selectedConfigurationName = null;
      	}
  
      	return;
      }
  
      protected Control createDialogArea(Composite parent) {
          Composite composite = (Composite) super.createDialogArea(parent);
          setTitle("Select a console configuration");
          //setMessage("");
  
          if (getTitleImageLabel() != null) {
  			getTitleImageLabel().setVisible(false);
  		}
  
          createConsoleConfigBrowseRow(composite);
          Dialog.applyDialogFont(composite);
          return composite;
      }
  
      protected void configureShell(Shell shell) {
          super.configureShell(shell);
          shell.setText("Select a console configuration");
      }
  
      protected void okPressed() {
          selectedConfigurationName = text.getText();
          super.okPressed();
      }
  
      protected void cancelPressed() {
      	selectedConfigurationName = null;
          super.cancelPressed();
      }
  
      private void createConsoleConfigBrowseRow(Composite parent) {
          Composite panel = new Composite(parent, SWT.NONE);
  
          GridLayout layout = new GridLayout(3, false);
          layout.marginHeight = convertVerticalDLUsToPixels(IDialogConstants.VERTICAL_MARGIN);
          layout.marginWidth = convertHorizontalDLUsToPixels(IDialogConstants.HORIZONTAL_MARGIN);
          layout.verticalSpacing = convertVerticalDLUsToPixels(IDialogConstants.VERTICAL_SPACING);
          layout.horizontalSpacing = convertHorizontalDLUsToPixels(IDialogConstants.HORIZONTAL_SPACING);
          panel.setLayout(layout);
          panel.setLayoutData(new GridData(GridData.FILL_BOTH));
          panel.setFont(parent.getFont());
  
          Label label = new Label(panel, SWT.NONE);
          label.setText("Console configuration:");
  
          text = new Combo(panel, SWT.BORDER | SWT.LEAD | SWT.DROP_DOWN | SWT.READ_ONLY);
          
          text.setFocus();
          text.setLayoutData(new GridData(GridData.GRAB_HORIZONTAL
                  | GridData.FILL_HORIZONTAL));
          text.addModifyListener(new ModifyListener(){
          	public void modifyText(ModifyEvent e) {
          		Button okButton = getButton(Window.OK);
          		if(okButton != null && !okButton.isDisposed()) {
          			okButton.setEnabled(!"".equals(text.getText()));
          		}
          	}
          });
          setInitialTextValues(text);
          
      }
  
      private void setInitialTextValues(Combo text) {
          ConsoleConfiguration[] recentWorkspaces = KnownConfigurations.getInstance().getConfigurations();
          for (int i = 0; i < recentWorkspaces.length; ++i) {
  				text.add(recentWorkspaces[i].getName());			
  		}
  
          text.setText(text.getItemCount() > 0 ? text.getItem(0) : initialDefault);
      }
  
  	public String getSelectedConfigurationName() {
  		return selectedConfigurationName;
  	}
  
  }
  
  
  



More information about the jboss-cvs-commits mailing list