modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/gwt/SearchGWTService.java | 4 +- modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/search/FlexSearchBar.java | 19 +++++----- modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/search/SearchBar.java | 12 +++++- modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/server/gwt/SearchGWTServiceImpl.java | 8 ++-- modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/search/SavedSearchManagerBean.java | 11 ++++- modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/search/SavedSearchManagerRemote.java | 3 + 6 files changed, 38 insertions(+), 19 deletions(-)
New commits: commit ceeaf69b7ff7e1f8482d265eed49db285e959807 Author: Joseph Marques joseph@redhat.com Date: Fri Jan 7 16:32:01 2011 -0500
only display message/feedback in UI if saved search update was NOT a no-op
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/gwt/SearchGWTService.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/gwt/SearchGWTService.java index 8dcfae7..140abe2 100644 --- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/gwt/SearchGWTService.java +++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/gwt/SearchGWTService.java @@ -46,9 +46,9 @@ public interface SearchGWTService extends RemoteService { */ int createSavedSearch(SavedSearch savedSearch) throws RuntimeException;
- void updateSavedSearchName(int savedSearchId, final String newName) throws RuntimeException; + boolean updateSavedSearchName(int savedSearchId, final String newName) throws RuntimeException;
- void updateSavedSearchPattern(int savedSearchId, final String newPattern) throws RuntimeException; + boolean updateSavedSearchPattern(int savedSearchId, final String newPattern) throws RuntimeException;
void deleteSavedSearch(int savedSearchId) throws RuntimeException;
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/search/FlexSearchBar.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/search/FlexSearchBar.java index 40c8b6e..6aaa523 100644 --- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/search/FlexSearchBar.java +++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/search/FlexSearchBar.java @@ -255,7 +255,7 @@ public class FlexSearchBar extends AbstractSearchBar { savedSearchesGrid.setSavedSearchSelectionHandler(handler); }
- private void turnNameFieldIntoLabel() { + private void turnNameFieldIntoLabel(boolean nameJustUpdated) { String name = patternNameField.getText();
if (name.equalsIgnoreCase(DEFAULT_PATTERN_NAME)) { @@ -285,7 +285,7 @@ public class FlexSearchBar extends AbstractSearchBar { if (currentSearchId == 0) { String pattern = autoCompletePatternField.getText(); createSavedSearch(name, pattern); - } else { + } else if (nameJustUpdated) { updateSavedSearchName(currentSearchId, name); } patternNameLabel.setText(elipse(name)); @@ -326,10 +326,12 @@ public class FlexSearchBar extends AbstractSearchBar { }
private void updateSavedSearchName(final int savedSearchId, final String newName) { - GWTServiceLookup.getSearchService().updateSavedSearchName(savedSearchId, newName, new AsyncCallback<Void>() { + GWTServiceLookup.getSearchService().updateSavedSearchName(savedSearchId, newName, new AsyncCallback<Boolean>() { @Override - public void onSuccess(Void result) { - CoreGUI.getMessageCenter().notify(new Message("Saved search successfully renamed", Severity.Info)); + public void onSuccess(Boolean hadUpdates) { + if (hadUpdates) { + CoreGUI.getMessageCenter().notify(new Message("Saved search successfully renamed", Severity.Info)); + } }
@Override @@ -377,7 +379,7 @@ public class FlexSearchBar extends AbstractSearchBar { public void onKeyPress(KeyPressEvent event) { if (event.getCharCode() == KeyCodes.KEY_ENTER) { Log.debug("key press pattern name field"); - turnNameFieldIntoLabel(); + turnNameFieldIntoLabel(true); } }
@@ -389,7 +391,7 @@ public class FlexSearchBar extends AbstractSearchBar {
public void onBlur(BlurEvent event) { lastNameFieldBlurTime = System.currentTimeMillis(); - turnNameFieldIntoLabel(); + turnNameFieldIntoLabel(true); } }
@@ -555,7 +557,7 @@ public class FlexSearchBar extends AbstractSearchBar { autoCompletePatternField.setValue(savedSearch.getPattern(), true); patternNameField.setValue(savedSearch.getName(), true); Log.debug("search results change: [" + savedSearch.getName() + "," + savedSearch.getPattern() + "]"); - turnNameFieldIntoLabel(); + turnNameFieldIntoLabel(false); savedSearchesPanel.hide(); }
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/search/SearchBar.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/search/SearchBar.java index aaa9d00..cce560c 100644 --- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/search/SearchBar.java +++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/search/SearchBar.java @@ -348,7 +348,16 @@ public class SearchBar extends AbstractSearchBar { }
private void updateSavedSearchName(final int savedSearchId, final String newName) { - GWTServiceLookup.getSearchService().updateSavedSearchName(savedSearchId, newName, blackHoleCallback); + GWTServiceLookup.getSearchService().updateSavedSearchName(savedSearchId, newName, new AsyncCallback<Boolean>() { + @Override + public void onSuccess(Boolean hadUpdates) { + // no message bar to send update message to if hadUpdates + } + + @Override + public void onFailure(Throwable caught) { + } + }); }
/* diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/server/gwt/SearchGWTServiceImpl.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/server/gwt/SearchGWTServiceImpl.java index dc3a069..1af6f3f 100644 --- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/server/gwt/SearchGWTServiceImpl.java +++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/server/gwt/SearchGWTServiceImpl.java @@ -70,21 +70,21 @@ public class SearchGWTServiceImpl extends AbstractGWTServiceImpl implements Sear } }
- public void updateSavedSearchName(int savedSearchId, final String newName) throws RuntimeException { + public boolean updateSavedSearchName(int savedSearchId, final String newName) throws RuntimeException { try { SavedSearch savedSearch = getSubjectSavedSearch(savedSearchId); savedSearch.setName(newName); - savedSearchManager.updateSavedSearch(getSessionSubject(), savedSearch); + return savedSearchManager.updateSavedSearch(getSessionSubject(), savedSearch); } catch (Throwable t) { throw new RuntimeException(ThrowableUtil.getAllMessages(t)); } }
- public void updateSavedSearchPattern(int savedSearchId, final String newPattern) throws RuntimeException { + public boolean updateSavedSearchPattern(int savedSearchId, final String newPattern) throws RuntimeException { try { SavedSearch savedSearch = getSubjectSavedSearch(savedSearchId); savedSearch.setPattern(newPattern); - savedSearchManager.updateSavedSearch(getSessionSubject(), savedSearch); + return savedSearchManager.updateSavedSearch(getSessionSubject(), savedSearch); } catch (Throwable t) { throw new RuntimeException(ThrowableUtil.getAllMessages(t)); } diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/search/SavedSearchManagerBean.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/search/SavedSearchManagerBean.java index 9f623ef..759658e 100644 --- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/search/SavedSearchManagerBean.java +++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/search/SavedSearchManagerBean.java @@ -59,11 +59,16 @@ public class SavedSearchManagerBean implements SavedSearchManagerLocal /* local /** * @see SavedSearchManagerRemote#updateSavedSearch(Subject, SavedSearch) */ - public void updateSavedSearch(Subject subject, SavedSearch savedSearch) { + public boolean updateSavedSearch(Subject subject, SavedSearch savedSearch) { // this needs to prevent certains types of updates, be more sophisticated, etc validateManipulatePermission(subject, savedSearch); - entityManager.merge(savedSearch); - return; + SavedSearch oldSavedSearch = entityManager.find(SavedSearch.class, savedSearch.getId()); + if (oldSavedSearch.equals(savedSearch)) { + return false; + } else { + entityManager.merge(savedSearch); + return true; + } }
/** diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/search/SavedSearchManagerRemote.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/search/SavedSearchManagerRemote.java index 1a7029f..cc878d7 100644 --- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/search/SavedSearchManagerRemote.java +++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/search/SavedSearchManagerRemote.java @@ -63,12 +63,13 @@ public interface SavedSearchManagerRemote { * @param subject the logged in user requesting the {@link SavedSearch} persisted modification * @param savedSearch the {@link SavedSearch} which will have its modifications persisted *. + * @return whether or not the {@link SavedSearch} had any edits that needed to be persisted * @throws PermissionException if the user is not authorized to modify the {@link SavedSearch}. Only inventory * managers can update global saved searches. Regular users can only update {@link SavedSearch}es from * their own accounts. */ @WebMethod - public void updateSavedSearch( // + public boolean updateSavedSearch( // @WebParam(name = "subject") Subject subject, // @WebParam(name = "savedSearch") SavedSearch savedSearch);
commit 4b1a7faf2799a2c935adfa1325d656f9c88f2e56 Author: Joseph Marques joseph@redhat.com Date: Thu Jan 6 10:51:22 2011 -0500
after deleting a saved search, update the internal state to represent that none are actively selected
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/search/FlexSearchBar.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/search/FlexSearchBar.java index 928e448..40c8b6e 100644 --- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/search/FlexSearchBar.java +++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/search/FlexSearchBar.java @@ -275,6 +275,7 @@ public class FlexSearchBar extends AbstractSearchBar { @Override public void onSuccess(Void result) { CoreGUI.getMessageCenter().notify(new Message("Removed saved search successfully", Severity.Info)); + currentSearchId = 0; } });
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/search/SearchBar.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/search/SearchBar.java index af2ef0e..aaa9d00 100644 --- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/search/SearchBar.java +++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/search/SearchBar.java @@ -302,6 +302,7 @@ public class SearchBar extends AbstractSearchBar {
if (name.equals("")) { GWTServiceLookup.getSearchService().deleteSavedSearch(currentSearchId, blackHoleCallback); + currentSearchId = 0; starImage.setUrl(STAR_OFF_URL); } else { // NOTE: currently do not support updated a saved search pattern
rhq-commits@lists.fedorahosted.org