Browse Source

对所有库文件引用查询进行细化,细到其下某个具体值是否被引用

jacky6024 8 years ago
parent
commit
95532b8c5f
23 changed files with 60 additions and 19 deletions
  1. 11 1
      urule-console-js/src/action/components/ActionEditor.jsx
  2. 2 2
      urule-console-js/src/components/dialog/component/CommonDialog.jsx
  3. 12 2
      urule-console-js/src/constant/components/ConstantEditor.jsx
  4. 10 2
      urule-console-js/src/parameter/components/ParameterEditor.jsx
  5. 3 3
      urule-console-js/src/reference/ReferenceDialog.jsx
  6. 12 2
      urule-console-js/src/variable/components/VariableEditor.jsx
  7. 4 3
      urule-console/src/main/java/com/bstek/urule/console/repository/RepositoryRefactor.java
  8. 1 1
      urule-console/src/main/java/com/bstek/urule/console/repository/RepositoryService.java
  9. 2 2
      urule-console/src/main/java/com/bstek/urule/console/repository/RepositoryServiceImpl.java
  10. 3 1
      urule-console/src/main/java/com/bstek/urule/console/servlet/common/CommonServletHandler.java
  11. 0 0
      urule-console/src/main/resources/urule-asserts/js/actionEditor.bundle.js
  12. 0 0
      urule-console/src/main/resources/urule-asserts/js/constantEditor.bundle.js
  13. 0 0
      urule-console/src/main/resources/urule-asserts/js/decisionTableEditor.bundle.js
  14. 0 0
      urule-console/src/main/resources/urule-asserts/js/decisionTreeEditor.bundle.js
  15. 0 0
      urule-console/src/main/resources/urule-asserts/js/flowDesigner.bundle.js
  16. 0 0
      urule-console/src/main/resources/urule-asserts/js/frame.bundle.js
  17. 0 0
      urule-console/src/main/resources/urule-asserts/js/packageEditor.bundle.js
  18. 0 0
      urule-console/src/main/resources/urule-asserts/js/parameterEditor.bundle.js
  19. 0 0
      urule-console/src/main/resources/urule-asserts/js/ruleSetEditor.bundle.js
  20. 0 0
      urule-console/src/main/resources/urule-asserts/js/scoreCardTable.bundle.js
  21. 0 0
      urule-console/src/main/resources/urule-asserts/js/scriptDecisionTableEditor.bundle.js
  22. 0 0
      urule-console/src/main/resources/urule-asserts/js/ulEditor.bundle.js
  23. 0 0
      urule-console/src/main/resources/urule-asserts/js/variableEditor.bundle.js

+ 11 - 1
urule-console-js/src/action/components/ActionEditor.jsx

@@ -105,11 +105,20 @@ class ActionEditor extends Component{
                             </div>
                             <div className="btn-group btn-group-sm" style={{margin:'2px'}}>
                                 <button className="btn btn-info" type="button" onClick={(e)=>{
-                                    refEvent.eventEmitter.emit(refEvent.OPEN_REFERENCE_DIALOG,file);
+                                    if(!this.currentData){
+                                        bootbox.alert('请先选择一条具体的动作方法');
+                                        return;
+                                    }
+                                    //const text=`const-category="${this.masterData.name}" const="${this.currentData.name}"`;
+                                    const text=`bean-name="${this.masterData.id}" bean-label="${this.masterData.name}" method-name="${this.currentData.methodName}"`;
+                                    const title=`动作"${this.masterData.name}.${this.currentData.name}"`;
+                                    refEvent.eventEmitter.emit(refEvent.OPEN_REFERENCE_DIALOG,file,text,title);
                                 }}><i className="rf rf-link"></i> 查看引用</button>
                             </div>
                         </div>
                         <Grid headers={masterGridHeaders} rows={masterData} operationConfig={masterGridOperationCol} rowClick={(rowData,rowIndex)=>{
+                            this.masterData=rowData;
+                            this.currentData=null;
                             dispatch(action.loadSlaveData(rowData,rowIndex));
                         }}/>
                         <SelectMethodDialog/>
@@ -123,6 +132,7 @@ class ActionEditor extends Component{
                                     </div>
                                 </div>
                                 <Grid headers={slaveGridHeaders} rows={masterRowData.methods} operationConfig={slaveGridOperationCol} rowClick={(rowData,rowIndex)=>{
+                                    this.currentData=rowData;
                                     dispatch(action.loadMethodData(rowData,rowIndex));
                                 }}/>
                             </div>

+ 2 - 2
urule-console-js/src/components/dialog/component/CommonDialog.jsx

@@ -38,10 +38,10 @@ export default class CommonDialog extends Component{
                             <button type="button" className="close" data-dismiss="modal" aria-hidden="true">
                                 &times;
                             </button>
-                            <h4 className="modal-title" id="myModalLabel">
+                            <h5 className="modal-title" id="myModalLabel">
                                 {this.props.title}
                                 <div className="text-danger" style={{fontSize:'12pt'}}>{this.props.info ? this.props.info : null}</div>
-                            </h4>
+                            </h5>
                         </div>
                         <div className="modal-body" style={{padding:'10px'}}>
                             {this.props.body}

+ 12 - 2
urule-console-js/src/constant/components/ConstantEditor.jsx

@@ -69,11 +69,19 @@ class ConstantEditor extends React.Component{
                             </div>
                             <div className="btn-group btn-group-sm" style={{margin:'2px'}}>
                                 <button className="btn btn-info" type="button" onClick={(e)=>{
-                                    refEvent.eventEmitter.emit(refEvent.OPEN_REFERENCE_DIALOG,file);
+                                    if(!this.currentData){
+                                        bootbox.alert('请先选择一条具体的常量');
+                                        return;
+                                    }
+                                    const text=`const-category="${this.masterData.name}" const="${this.currentData.name}"`;
+                                    const title=`常量"${this.masterData.name}.${this.currentData.name}"`;
+                                    refEvent.eventEmitter.emit(refEvent.OPEN_REFERENCE_DIALOG,file,text,title);
                                 }}><i className="rf rf-link"></i> 查看引用</button>
                             </div>
                         </div>
                         <Grid headers={masterHeaders} dispatch={dispatch} rows={masterData} operationConfig={masterGridOperationCol} rowClick={(rowData)=>{
+                            this.masterData=rowData;
+                            this.currentData=null;
                             dispatch(action.loadSlaveData(rowData));
                         }}></Grid>
                     </div>
@@ -83,7 +91,9 @@ class ConstantEditor extends React.Component{
                                 <button className="btn btn-primary" type="button" onClick={(e)=>{dispatch(action.addSlave())}}><i className="glyphicon glyphicon-plus"></i> 添加常量</button>
                             </div>
                         </div>
-                        <Grid headers={slaveHeaders} dispatch={dispatch} rows={masterRowData.constants || []} operationConfig={slaveGridOperationCol}></Grid>
+                        <Grid headers={slaveHeaders} dispatch={dispatch} rows={masterRowData.constants || []} operationConfig={slaveGridOperationCol} rowClick={(rowData)=>{
+                            this.currentData=rowData;
+                        }}></Grid>
                     </div>
                 </Splitter>
             </div>

+ 10 - 2
urule-console-js/src/parameter/components/ParameterEditor.jsx

@@ -45,11 +45,19 @@ class ParameterEditor extends Component{
                     </div>
                     <div className="btn-group btn-group-sm" style={{margin:'2px'}}>
                         <button className="btn btn-info" type="button" onClick={(e)=>{
-                                    refEvent.eventEmitter.emit(refEvent.OPEN_REFERENCE_DIALOG,file);
+                                    if(!this.currentData){
+                                        bootbox.alert('请先选择一条具体的参数');
+                                        return;
+                                    }
+                                    const text=`var-category="参数" var="${this.currentData.name}"`;
+                                    const title=`参数"${this.currentData.name}"`;
+                                    refEvent.eventEmitter.emit(refEvent.OPEN_REFERENCE_DIALOG,file,text,title);
                                 }}><i className="rf rf-link"></i> 查看引用</button>
                     </div>
                 </div>
-                <Grid headers={headers} rows={data} dispatch={dispatch} operationConfig={operationConfig}/>
+                <Grid headers={headers} rows={data} dispatch={dispatch} operationConfig={operationConfig} rowClick={(rowData)=>{
+                    this.currentData=rowData;
+                }}/>
             </div>
         );
     }

+ 3 - 3
urule-console-js/src/reference/ReferenceDialog.jsx

@@ -12,12 +12,12 @@ export default class ReferenceDialog extends Component{
         this.state={title:'',files:[]};
     }
     componentDidMount(){
-        event.eventEmitter.on(event.OPEN_REFERENCE_DIALOG,file=>{
+        event.eventEmitter.on(event.OPEN_REFERENCE_DIALOG,(file,searchText,info)=>{
             $(ReactDOM.findDOMNode(this)).modal('show');
-            const title=`引用了库文件[${file}]的文件`;
+            const title=`引用文件[${file}]${info}的文件`;
             $.ajax({
                 url:window._server+'/common/loadReferenceFiles',
-                data:{path:file},
+                data:{path:file,searchText},
                 type:'POST',
                 success:function (files) {
                     this.setState({files,title});

+ 12 - 2
urule-console-js/src/variable/components/VariableEditor.jsx

@@ -101,12 +101,20 @@ class VariableEditor extends Component{
                             </div>
                             <div className="btn-group btn-group-sm" style={{margin:'2px'}}>
                                 <button className="btn btn-info" type="button" onClick={(e)=>{
-                                    refEvent.eventEmitter.emit(refEvent.OPEN_REFERENCE_DIALOG,file);
+                                    if(!this.currentData){
+                                        bootbox.alert('请先选择一条具体的变量');
+                                        return;
+                                    }
+                                    const text=`var-category="${this.masterData.name}" var="${this.currentData.name}"`;
+                                    const title=`变量"${this.masterData.name}.${this.currentData.name}"`;
+                                    refEvent.eventEmitter.emit(refEvent.OPEN_REFERENCE_DIALOG,file,text,title);
                                 }}><i className="rf rf-link"></i> 查看引用</button>
                             </div>
                         </div>
 
                         <Grid headers={masterGridHeaders} dispatch={dispatch} rows={masterData} operationConfig={masterGridOperationCol} rowClick={(rowData)=>{
+                            this.masterData=rowData;
+                            this.currentData=null;
                             setTimeout(function(){dispatch(action.loadSlaveData(rowData));},1);
                         }}></Grid>
                         <ImportXmlDialog dispatch={dispatch}/>
@@ -117,7 +125,9 @@ class VariableEditor extends Component{
                                 <button className="btn btn-primary" type="button" onClick={(e)=>{dispatch(action.addSlave())}}><i className="glyphicon glyphicon-plus-sign"></i> 添加字段</button>
                             </div>
                         </div>
-                        <Grid headers={slaveGridHeaders} dispatch={dispatch} operationConfig={slaveGridOperationCol} rows={masterRowData.variables || []}></Grid>
+                        <Grid headers={slaveGridHeaders} dispatch={dispatch} operationConfig={slaveGridOperationCol} rows={masterRowData.variables || []} rowClick={(rowData)=>{
+                            this.currentData=rowData;
+                        }}></Grid>
                     </div>
                 </Splitter>
             </div>

+ 4 - 3
urule-console/src/main/java/com/bstek/urule/console/repository/RepositoryRefactor.java

@@ -63,7 +63,7 @@ public class RepositoryRefactor {
 		}
 	}
 	
-	public List<String> getReferenceFiles(Node rootNode,String path){
+	public List<String> getReferenceFiles(Node rootNode,String path,String searchText){
 		List<String> referenceFiles=new ArrayList<String>();
 		List<String> files=getFiles(rootNode, path);
 		for(String nodePath:files){
@@ -71,8 +71,9 @@ public class RepositoryRefactor {
 			try {
 				String content = IOUtils.toString(inputStream);
 				inputStream.close();
-				boolean contain=content.contains(path);
-				if(contain){
+				boolean containPath=content.contains(path);
+				boolean containText=content.contains(searchText);
+				if(containPath && containText){
 					referenceFiles.add(nodePath);
 				}
 			} catch (IOException e) {

+ 1 - 1
urule-console/src/main/java/com/bstek/urule/console/repository/RepositoryService.java

@@ -41,7 +41,7 @@ public interface RepositoryService {
 	Repository loadRepository(String project,String companyId,boolean classify,FileType[] types,String searchFileName);
 	List<RepositoryFile> loadProject(String companyId);
 	void fileRename(String path, String newPath);
-	List<String> getReferenceFiles(String path);
+	List<String> getReferenceFiles(String path,String searchText);
 	InputStream readFile(String path,String version);
 	List<ResourcePackage> loadProjectResourcePackages(String project) throws Exception;
 	List<VersionFile> getVersionFiles(String path);

+ 2 - 2
urule-console/src/main/java/com/bstek/urule/console/repository/RepositoryServiceImpl.java

@@ -727,9 +727,9 @@ public class RepositoryServiceImpl implements RepositoryService, ApplicationCont
 		}
 	}
 
-	public List<String> getReferenceFiles(String path) {
+	public List<String> getReferenceFiles(String path,String searchText) {
 		Node rootNode=getRootNode();
-		return refactor.getReferenceFiles(rootNode, path);
+		return refactor.getReferenceFiles(rootNode, path,searchText);
 	}
 	
 	@Override

+ 3 - 1
urule-console/src/main/java/com/bstek/urule/console/servlet/common/CommonServletHandler.java

@@ -91,7 +91,9 @@ public class CommonServletHandler extends RenderPageServletHandler{
 	}
 	public void loadReferenceFiles(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
 		String path=req.getParameter("path");
-		List<String> files=repositoryService.getReferenceFiles(path);
+		path=Utils.decodeURL(path);
+		String searchText=req.getParameter("searchText");
+		List<String> files=repositoryService.getReferenceFiles(path,searchText);
 		List<RefFile> refFiles=new ArrayList<RefFile>();
 		for(String file:files){
 			RefFile ref=new RefFile();

File diff suppressed because it is too large
+ 0 - 0
urule-console/src/main/resources/urule-asserts/js/actionEditor.bundle.js


File diff suppressed because it is too large
+ 0 - 0
urule-console/src/main/resources/urule-asserts/js/constantEditor.bundle.js


File diff suppressed because it is too large
+ 0 - 0
urule-console/src/main/resources/urule-asserts/js/decisionTableEditor.bundle.js


File diff suppressed because it is too large
+ 0 - 0
urule-console/src/main/resources/urule-asserts/js/decisionTreeEditor.bundle.js


File diff suppressed because it is too large
+ 0 - 0
urule-console/src/main/resources/urule-asserts/js/flowDesigner.bundle.js


File diff suppressed because it is too large
+ 0 - 0
urule-console/src/main/resources/urule-asserts/js/frame.bundle.js


File diff suppressed because it is too large
+ 0 - 0
urule-console/src/main/resources/urule-asserts/js/packageEditor.bundle.js


File diff suppressed because it is too large
+ 0 - 0
urule-console/src/main/resources/urule-asserts/js/parameterEditor.bundle.js


File diff suppressed because it is too large
+ 0 - 0
urule-console/src/main/resources/urule-asserts/js/ruleSetEditor.bundle.js


File diff suppressed because it is too large
+ 0 - 0
urule-console/src/main/resources/urule-asserts/js/scoreCardTable.bundle.js


File diff suppressed because it is too large
+ 0 - 0
urule-console/src/main/resources/urule-asserts/js/scriptDecisionTableEditor.bundle.js


File diff suppressed because it is too large
+ 0 - 0
urule-console/src/main/resources/urule-asserts/js/ulEditor.bundle.js


File diff suppressed because it is too large
+ 0 - 0
urule-console/src/main/resources/urule-asserts/js/variableEditor.bundle.js


Some files were not shown because too many files changed in this diff