[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