[jboss-svn-commits] JBL Code SVN: r31197 - in labs/jbossrules/trunk: drools-guvnor/src/main/java/org/drools/guvnor/client/rulelist and 3 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Sat Jan 23 20:02:56 EST 2010
Author: jervisliu
Date: 2010-01-23 20:02:54 -0500 (Sat, 23 Jan 2010)
New Revision: 31197
Modified:
labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/rpc/RepositoryService.java
labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/rpc/RepositoryServiceAsync.java
labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/rulelist/QuickFindWidget.java
labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/RepositoryServiceServlet.java
labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/ServiceImplementation.java
labs/jbossrules/trunk/drools-guvnor/src/test/java/org/drools/guvnor/server/ServiceImplementationTest.java
labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/security/PermissionManager.java
Log:
https://jira.jboss.org/jira/browse/GUVNOR-497: Inconsistent GUI is used to show search result
Modified: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/rpc/RepositoryService.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/rpc/RepositoryService.java 2010-01-22 20:15:18 UTC (rev 31196)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/rpc/RepositoryService.java 2010-01-24 01:02:54 UTC (rev 31197)
@@ -262,15 +262,12 @@
/**
- * This will quickly return a list of asset names/descriptions.
- * This list will be limited, and it will be flagged if more are found then can be shown.
- * Returning an extra empty row means there are more to come...
- *
- * The id of a row is the UUID, the first value is the name, the next the description.
- * Finally, if there is "more" rows, a row will be returned which has "MORE" as its ID.
- *
+ * This will quickly return a list of assets
*/
- public TableDataResult quickFindAsset(String searchText, int maxMatches, boolean searchArchived);
+ public TableDataResult quickFindAsset(String searchText,
+ boolean searchArchived,
+ int skip,
+ int numRows) throws SerializableException;
/**
Modified: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/rpc/RepositoryServiceAsync.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/rpc/RepositoryServiceAsync.java 2010-01-22 20:15:18 UTC (rev 31196)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/rpc/RepositoryServiceAsync.java 2010-01-24 01:02:54 UTC (rev 31197)
@@ -69,7 +69,7 @@
public void listSnapshots(java.lang.String p0, AsyncCallback<org.drools.guvnor.client.rpc.SnapshotInfo[]> cb);
public void createPackageSnapshot(java.lang.String p0, java.lang.String p1, boolean p2, java.lang.String p3, AsyncCallback cb);
public void copyOrRemoveSnapshot(java.lang.String p0, java.lang.String p1, boolean p2, java.lang.String p3, AsyncCallback cb);
- public void quickFindAsset(java.lang.String p0, int p1, boolean p2, AsyncCallback<org.drools.guvnor.client.rpc.TableDataResult> cb);
+ public void quickFindAsset(java.lang.String p0, boolean p1, int p2, int p3, AsyncCallback<org.drools.guvnor.client.rpc.TableDataResult> cb);
public void removeCategory(java.lang.String p0, AsyncCallback cb);
public void loadSuggestionCompletionEngine(java.lang.String p0, AsyncCallback<org.drools.guvnor.client.modeldriven.SuggestionCompletionEngine> cb);
public void buildPackage(java.lang.String p0, boolean p1, java.lang.String p2, java.lang.String p3, java.lang.String p4, boolean p5, java.lang.String p6, java.lang.String p7, boolean p8, java.lang.String p9, AsyncCallback<org.drools.guvnor.client.rpc.BuilderResult[]> cb);
Modified: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/rulelist/QuickFindWidget.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/rulelist/QuickFindWidget.java 2010-01-22 20:15:18 UTC (rev 31196)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/rulelist/QuickFindWidget.java 2010-01-24 01:02:54 UTC (rev 31197)
@@ -46,7 +46,7 @@
private final FlexTable listPanel;
private SuggestBox searchBox;
private CheckBox archiveBox;
- private EditItemEvent editEvent;
+ private final EditItemEvent openItem;
private Constants constants = ((Constants) GWT.create(Constants.class));
@@ -60,25 +60,39 @@
}
});
+ final SimplePanel resultsP = new SimplePanel();
-
-
- this.editEvent = editEvent;
+ this.openItem = editEvent;
HorizontalPanel srch = new HorizontalPanel();
Button go = new Button(constants.Search());
- go.addClickListener( new ClickListener() {
+ final ClickListener cl = new ClickListener() {
public void onClick(Widget w) {
- updateList();
+ //updateList();
+ resultsP.clear();
+ AssetItemGrid grid = new AssetItemGrid( openItem,
+ "searchresults",
+ new AssetItemGridDataLoader() { //NON-NLS
+ public void loadData(int startRow,
+ int numberOfRows,
+ GenericCallback<TableDataResult> cb) {
+ RepositoryServiceFactory.getService().quickFindAsset(searchBox.getText(),
+ archiveBox.isChecked(),
+ startRow,
+ numberOfRows,
+ cb );
+ }
+ } );
+ resultsP.add( grid );
}
- } );
-
-
+ } ;
+ go.addClickListener(cl);
+
searchBox.addKeyboardListener(new KeyboardListenerAdapter() {
@Override
public void onKeyUp(Widget sender, char keyCode, int modifiers) {
if (keyCode == KeyboardListener.KEY_ENTER) {
- updateList();
+ cl.onClick( sender );
}
}
});
@@ -99,13 +113,11 @@
PrettyFormLayout pfl = new PrettyFormLayout();
pfl.startSection();
pfl.addRow(listPanel);
+ pfl.addRow( resultsP );
-
pfl.endSection();
layout.addRow(pfl);
-
-
/*
Button b = new Button("Do a request");
@@ -117,10 +129,6 @@
*/
-
-
-
-
initWidget( layout );
}
@@ -138,8 +146,6 @@
ids.add(aData.id);
}
-
-
RepositoryServiceFactory.getService().loadRuleAsset(ids.get(0), new GenericCallback<RuleAsset>() {
public void onSuccess(final RuleAsset result) {
SuggestionCompletionCache.getInstance().doAction(result.metaData.packageName, new Command() {
@@ -165,8 +171,6 @@
});
}
}
-
-
}
});
}
@@ -175,20 +179,16 @@
}
});
-
-
}
});
}
-
/**
* This will load a list of items as they are typing.
*/
protected void loadShortList(String match, final Request r, final Callback cb) {
- RepositoryServiceFactory.getService().quickFindAsset( match, 5, archiveBox.isChecked() ,new GenericCallback<TableDataResult>() {
+ RepositoryServiceFactory.getService().quickFindAsset( match, archiveBox.isChecked() ,0, 5, new GenericCallback<TableDataResult>() {
-
public void onSuccess(TableDataResult result) {
List items = new ArrayList();
for ( int i = 0; i < result.data.length; i++ ) {
@@ -215,56 +215,4 @@
}
- protected void updateList() {
-
- LoadingPopup.showMessage(constants.SearchingDotDotDot());
- RepositoryServiceFactory.getService().quickFindAsset( searchBox.getText(), 15, archiveBox.isChecked() , new GenericCallback<TableDataResult>() {
- public void onSuccess(TableDataResult result) {
- populateList(result);
- }
- });
-
-
- }
-
- protected void populateList(TableDataResult result) {
-
-
- FlexTable data = new FlexTable();
-
- //if its only one, just open it...
- if (result.data.length == 1) {
- editEvent.open( result.data[0].id );
- }
-
- for ( int i = 0; i < result.data.length; i++ ) {
-
- final TableDataRow row = result.data[i];
- if (row.id.equals( "MORE" )) { //NON-NLS
- data.setWidget( i, 0, new HTML("<i>" + constants.ThereAreMoreItemsTryNarrowingTheSearchTerms() + "</i>") );
- data.getFlexCellFormatter().setColSpan( i, 0, 3 );
- } else {
- data.setWidget( i, 0, new Label(row.values[0]) );
- data.setWidget( i, 1, new Label(row.values[1]) );
- Button open = new Button(constants.Open());
- open.addClickListener( new ClickListener() {
- public void onClick(Widget w) {
- editEvent.open( row.id );
- }
- } );
-
- data.setWidget( i, 2, open );
- }
-
-
- }
-
- //data.setWidth( "100%" );
- listPanel.setWidget( 0, 0, data);
-
- LoadingPopup.close();
-
- }
-
-
}
\ No newline at end of file
Modified: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/RepositoryServiceServlet.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/RepositoryServiceServlet.java 2010-01-22 20:15:18 UTC (rev 31196)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/RepositoryServiceServlet.java 2010-01-24 01:02:54 UTC (rev 31197)
@@ -199,8 +199,8 @@
public void copyOrRemoveSnapshot(java.lang.String p0, java.lang.String p1, boolean p2, java.lang.String p3) throws com.google.gwt.user.client.rpc.SerializableException {
getService().copyOrRemoveSnapshot( p0, p1, p2, p3);
}
- public org.drools.guvnor.client.rpc.TableDataResult quickFindAsset(java.lang.String p0, int p1, boolean p2) {
- return getService().quickFindAsset( p0, p1, p2);
+ public org.drools.guvnor.client.rpc.TableDataResult quickFindAsset(java.lang.String p0, boolean p1, int p2, int p3) throws com.google.gwt.user.client.rpc.SerializableException{
+ return getService().quickFindAsset( p0, p1, p2, p3);
}
public void removeCategory(java.lang.String p0) throws com.google.gwt.user.client.rpc.SerializableException {
getService().removeCategory( p0);
Modified: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/ServiceImplementation.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/ServiceImplementation.java 2010-01-22 20:15:18 UTC (rev 31196)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/ServiceImplementation.java 2010-01-24 01:02:54 UTC (rev 31197)
@@ -1245,7 +1245,7 @@
comment );
}
-
+
@WebRemote
@Restrict("#{identity.loggedIn}")
public String copyAsset(String assetUUID,
@@ -1342,8 +1342,9 @@
@WebRemote
@Restrict("#{identity.loggedIn}")
public TableDataResult quickFindAsset(String searchText,
- int max,
- boolean searchArchived) {
+ boolean searchArchived,
+ int skip,
+ int numRows) throws SerializableException {
String search = searchText.replace( '*',
'%' );
@@ -1354,45 +1355,26 @@
TableDataResult result = new TableDataResult();
- List<TableDataRow> resultList = new ArrayList<TableDataRow>();
+ List<AssetItem> resultList = new ArrayList<AssetItem>();
long start = System.currentTimeMillis();
AssetItemIterator it = repository.findAssetsByName( search,
searchArchived ); // search for archived items
log.debug( "Search time: " + (System.currentTimeMillis() - start) );
- RepositoryFilter filter = new AssetItemFilter();
- for ( int i = 0; i < max; i++ ) {
- if ( !it.hasNext() ) {
- break;
- }
- AssetItem item = (AssetItem) it.next();
- if ( filter.accept( item,
- RoleTypes.PACKAGE_READONLY ) ) {
- TableDataRow row = new TableDataRow();
- row.id = item.getUUID();
- String desc = item.getDescription() + "";
- row.values = new String[]{item.getName(), desc.substring( 0,
- Math.min( 32,
- desc.length() ) )};
+ // Add filter for READONLY permission
+ RepositoryFilter filter = new AssetItemFilter();
- resultList.add( row );
- }
- }
+ while (it.hasNext()) {
+ AssetItem ai = it.next();
+ if (filter.accept(ai, RoleTypes.PACKAGE_READONLY)) {
+ resultList.add(ai);
+ }
+ }
- while ( it.hasNext() ) {
- if ( filter.accept( (AssetItem) it.next(),
- RoleTypes.PACKAGE_READONLY ) ) {
- TableDataRow empty = new TableDataRow();
- empty.id = "MORE";
- resultList.add( empty );
- break;
- }
- }
+ TableDisplayHandler handler = new TableDisplayHandler( "searchresults" );
- result.data = resultList.toArray( new TableDataRow[resultList.size()] );
- return result;
-
+ return handler.loadRuleListTable(resultList, skip, numRows);
}
@WebRemote
Modified: labs/jbossrules/trunk/drools-guvnor/src/test/java/org/drools/guvnor/server/ServiceImplementationTest.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/test/java/org/drools/guvnor/server/ServiceImplementationTest.java 2010-01-22 20:15:18 UTC (rev 31196)
+++ labs/jbossrules/trunk/drools-guvnor/src/test/java/org/drools/guvnor/server/ServiceImplementationTest.java 2010-01-24 01:02:54 UTC (rev 31197)
@@ -972,18 +972,14 @@
"testListByFormat" }, 0, 40, AssetItemGrid.RULE_LIST_TABLE_ID);
assertEquals(5, res.data.length);
- TableDataResult result = impl.quickFindAsset("testListByForma", 5,
- false);
+ TableDataResult result = impl.quickFindAsset("testListByForma", false, 0, 5);
assertEquals(5, result.data.length);
assertNotNull(result.data[0].id);
assertTrue(result.data[0].values[0].startsWith("testListByFormat"));
- result = impl.quickFindAsset("testListByForma", 3, false);
+ result = impl.quickFindAsset("testListByForma", false, 0, 4);
assertEquals(4, result.data.length);
-
- assertEquals("MORE", result.data[3].id);
-
}
@@ -1010,18 +1006,18 @@
impl.createPackage("testQuickFind",
"for testing quick find.");
String uuid = impl.createNewRule("testQuickFindmyRule1", "desc", cat, "testQuickFind", AssetFormats.DRL);
- TableDataResult res = impl.quickFindAsset("testQuickFindmyRule", 20, false);
+ TableDataResult res = impl.quickFindAsset("testQuickFindmyRule", false, 0, 20);
assertEquals(1, res.data.length);
impl.createNewRule("testQuickFindmyRule2", "desc", cat, "testQuickFind", AssetFormats.DRL);
- res = impl.quickFindAsset("testQuickFindmyRule", 20, false);
+ res = impl.quickFindAsset("testQuickFindmyRule", false, 0, 20);
assertEquals(2, res.data.length);
impl.copyAsset(uuid, "testQuickFind", "testQuickFindmyRule3");
- res = impl.quickFindAsset("testQuickFindmyRule", 20, false);
+ res = impl.quickFindAsset("testQuickFindmyRule", false, 0, 20);
assertEquals(3, res.data.length);
- res = impl.quickFindAsset("testQuickFindm*Rule", 20, false);
+ res = impl.quickFindAsset("testQuickFindm*Rule", false, 0, 20);
assertEquals(3, res.data.length);
Modified: labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/security/PermissionManager.java
===================================================================
--- labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/security/PermissionManager.java 2010-01-22 20:15:18 UTC (rev 31196)
+++ labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/security/PermissionManager.java 2010-01-24 01:02:54 UTC (rev 31197)
@@ -61,9 +61,35 @@
}
}
+ public void createUser(String userName) {
+ if (!isValideUserName(userName)) {
+ throw new RulesRepositoryException("Invalide user name");
+ }
+ if (containsUser(userName)) {
+ throw new RulesRepositoryException("User name [" + userName + "] already exists");
+ }
+ try {
+ Node permsNode = getUserPermissionNode(userName);
+ permsNode.remove(); //remove this so we get a fresh set
+ permsNode = getUserPermissionNode(userName).addNode("jcr:content", "nt:unstructured");
+ this.repository.save();
+ } catch (RepositoryException e) {
+ throw new RulesRepositoryException(e);
+ }
+ }
+
+ private boolean containsUser(String userName) {
+ try {
+ Node userRoot = getUsersRootNode(getRootNode(repository));
+ if (userRoot.hasNode(userName)) {
+ return true;
+ }
+ } catch (RepositoryException e) {
+ }
-
-
+ return false;
+ }
+
private Node getUserPermissionNode(String userName)
throws RepositoryException {
Node permsNode = getNode(getUserInfoNode(userName, repository), "permissions", "nt:file");
More information about the jboss-svn-commits
mailing list