Download
Getting Started
Members
Projects
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
More
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
Toggle navigation
Bugzilla – Attachment 221254 Details for
Bug 340749
Add Search field above the Tables list in Generate Custom Entities wizard page
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
Log In
[x]
|
Terms of Use
|
Copyright Agent
Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read
this important communication.
[patch]
proposed patch
340749_09_19_2012.patch (text/plain), 7.12 KB, created by
Nan Li
on 2012-09-19 11:42:54 EDT
(
hide
)
Description:
proposed patch
Filename:
MIME Type:
Creator:
Nan Li
Created:
2012-09-19 11:42:54 EDT
Size:
7.12 KB
patch
obsolete
>### Eclipse Workspace Patch 1.0 >#P org.eclipse.jpt.jpa.ui >diff --git property_files/jpt_ui_entity_gen.properties property_files/jpt_ui_entity_gen.properties >index 2388c29..658fa57 100644 >--- property_files/jpt_ui_entity_gen.properties >+++ property_files/jpt_ui_entity_gen.properties >@@ -39,6 +39,7 @@ > GenerateEntitiesWizard_tableSelectPage_tables=&Tables: > GenerateEntitiesWizard_tableSelectPage_tableColumn=Table > GenerateEntitiesWizard_tableSelectPage_Restore_Defaults=Restore Defaults >+GenerateEntitiesWizard_tableSelectPage_tableSearch=type filter text > > GenerateEntitiesWizard_tableSelectPage_getTables_jobName=Getting Tables > GenerateEntitiesWizard_tableSelectPage_getTables_taskName=Schema get tables >diff --git src/org/eclipse/jpt/jpa/ui/internal/wizards/gen/JptUiEntityGenMessages.java src/org/eclipse/jpt/jpa/ui/internal/wizards/gen/JptUiEntityGenMessages.java >index d6c1a00..0827a6b 100644 >--- src/org/eclipse/jpt/jpa/ui/internal/wizards/gen/JptUiEntityGenMessages.java >+++ src/org/eclipse/jpt/jpa/ui/internal/wizards/gen/JptUiEntityGenMessages.java >@@ -30,6 +30,7 @@ > public static String GenerateEntitiesWizard_tableSelectPage_updatePersistenceXml; > public static String GenerateEntitiesWizard_tableSelectPage_tables; > public static String GenerateEntitiesWizard_tableSelectPage_tableColumn; >+ public static String GenerateEntitiesWizard_tableSelectPage_tableSearch; > > public static String GenerateEntitiesWizard_tableSelectPage_getTables_jobName; > public static String GenerateEntitiesWizard_tableSelectPage_getTables_taskName; >diff --git src/org/eclipse/jpt/jpa/ui/internal/wizards/gen/TablesSelectorWizardPage.java src/org/eclipse/jpt/jpa/ui/internal/wizards/gen/TablesSelectorWizardPage.java >index 277cde2..eb1863e 100644 >--- src/org/eclipse/jpt/jpa/ui/internal/wizards/gen/TablesSelectorWizardPage.java >+++ src/org/eclipse/jpt/jpa/ui/internal/wizards/gen/TablesSelectorWizardPage.java >@@ -17,7 +17,7 @@ > import java.util.HashSet; > import java.util.List; > import java.util.Set; >- >+import java.util.regex.PatternSyntaxException; > import org.eclipse.core.resources.WorkspaceJob; > import org.eclipse.core.runtime.IProgressMonitor; > import org.eclipse.core.runtime.IStatus; >@@ -39,12 +39,14 @@ > import org.eclipse.jface.viewers.LabelProvider; > import org.eclipse.jface.viewers.SelectionChangedEvent; > import org.eclipse.jface.viewers.Viewer; >+import org.eclipse.jface.viewers.ViewerFilter; > import org.eclipse.jface.viewers.ViewerSorter; > import org.eclipse.jface.wizard.IWizardPage; > import org.eclipse.jface.wizard.WizardPage; > import org.eclipse.jpt.common.ui.internal.util.SWTUtil; > import org.eclipse.jpt.common.ui.internal.util.TableLayoutComposite; > import org.eclipse.jpt.common.utility.internal.CollectionTools; >+import org.eclipse.jpt.common.utility.internal.Tools; > import org.eclipse.jpt.jpa.core.JpaProject; > import org.eclipse.jpt.jpa.db.ConnectionProfile; > import org.eclipse.jpt.jpa.db.Schema; >@@ -58,6 +60,8 @@ > import org.eclipse.swt.SWT; > import org.eclipse.swt.events.KeyAdapter; > import org.eclipse.swt.events.KeyEvent; >+import org.eclipse.swt.events.KeyListener; >+import org.eclipse.swt.events.SelectionAdapter; > import org.eclipse.swt.events.SelectionEvent; > import org.eclipse.swt.events.SelectionListener; > import org.eclipse.swt.graphics.Color; >@@ -67,10 +71,10 @@ > import org.eclipse.swt.widgets.Button; > import org.eclipse.swt.widgets.Composite; > import org.eclipse.swt.widgets.Control; >-import org.eclipse.swt.widgets.Display; > import org.eclipse.swt.widgets.Label; > import org.eclipse.swt.widgets.TableColumn; > import org.eclipse.swt.widgets.TableItem; >+import org.eclipse.swt.widgets.Text; > import org.eclipse.ui.PlatformUI; > import org.eclipse.ui.help.IWorkbenchHelpSystem; > >@@ -90,6 +94,8 @@ > private Button refreshTablesButton; > private Button selectAllButton; > private Button deselectAllButton; >+ private Text searchText; >+ private SearchFilter filter; > > private WorkspaceJob fetchTablesJob; > protected final ResourceManager resourceManager; >@@ -192,10 +198,18 @@ > tableLabel.setLayoutData(gridData); > tableLabel.setText(JptUiEntityGenMessages.GenerateEntitiesWizard_tableSelectPage_tables ); > >+ this.searchText = this.buildSearchText(parent); >+ >+ // build two empty labels to align the components >+ new Label(parent, SWT.NONE); >+ new Label(parent, SWT.NONE); >+ > TableLayoutComposite layout = new TableLayoutComposite(parent, SWT.NONE); > this.addColumnLayoutData(layout); > >+ filter = new SearchFilter(); > this.tableTable = this.buildCheckboxTableViewer(this.buildTable(layout)); >+ this.tableTable.addFilter(filter); > > this.createButtonComposite(parent); > this.initTablesSelectionControl(this.possibleTables()); >@@ -453,6 +467,16 @@ > private IContentProvider buildTableTableContentProvider() { > return new TableTableContentProvider(); > } >+ >+ private Text buildSearchText(Composite parent) { >+ GridData gridData = new GridData(GridData.GRAB_HORIZONTAL | GridData.HORIZONTAL_ALIGN_FILL); >+ Text text = new Text(parent, SWT.BORDER | SWT.SEARCH | SWT.ICON_SEARCH | SWT.ICON_CANCEL); >+ text.setMessage(JptUiEntityGenMessages.GenerateEntitiesWizard_tableSelectPage_tableSearch); >+ text.setLayoutData(gridData); >+ text.addSelectionListener(this.buildClearSearchTextSelectionListener()); >+ text.addKeyListener(this.buildSearchTextKeyListener()); >+ return text; >+ } > > // ********** listeners callbacks ********** > >@@ -534,6 +558,24 @@ > > public void widgetSelected(SelectionEvent e) { > refreshTables(); >+ } >+ }; >+ } >+ >+ private SelectionListener buildClearSearchTextSelectionListener() { >+ return new SelectionAdapter() { >+ public void widgetDefaultSelected(SelectionEvent e) { >+ filter.setSearchText(""); >+ tableTable.refresh(); >+ } >+ }; >+ } >+ >+ private KeyListener buildSearchTextKeyListener() { >+ return new KeyAdapter() { >+ public void keyReleased(KeyEvent event) { >+ filter.setSearchText(searchText.getText()); >+ tableTable.refresh(); > } > }; > } >@@ -764,4 +806,45 @@ > return ((Collection<?>) inputElement).toArray(); > } > } >-} >+ >+ private class SearchFilter extends ViewerFilter { >+ >+ private String inputString; >+ private boolean exLogged; >+ private String oldInput; >+ private String newInput; >+ >+ public void setSearchText(String givenStr) { >+ // Input string must be a substring of the existing value and is case-sensitive >+ inputString = ".*" + givenStr + ".*"; >+ newInput = givenStr; >+ >+ } >+ >+ @Override >+ public boolean select(Viewer viewer, Object parentElement, Object element) { >+ if (inputString == null || inputString.length() == 0) { >+ return true; >+ } >+ >+ Table table = (Table) element; >+ try { >+ if (table.getName().matches("(?i).*" + inputString + ".*")) { >+ exLogged = false; >+ return true; >+ } >+ } catch (PatternSyntaxException ex) { >+ if (!exLogged || !Tools.valuesAreEqual(oldInput, newInput) ) { >+ // Log the exception when invalid search string is given >+ // and log the exception only once instead of logging it for each table entry >+ JptJpaUiPlugin.instance().logError(ex, "Invaid table search string: {0}", newInput); >+ exLogged = true; >+ oldInput = newInput; >+ } >+ return false; >+ } >+ >+ return false; >+ } >+ } >+} >\ No newline at end of file
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 340749
:
220155
|
221254
|
221422