⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 graphtemplatecell.java

📁 JGraph扩展应用。自定义Renderer,自定义视图View实现自定义工作流控件
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
											continue;
										}
										if(((DefaultPort)edge.getSource()).getParent() == null){
										//	System.out.println("null================2");
											continue;
										}
										if(((DefaultPort)edge.getSource()).getParent().equals(cell)){
											//iter.next();
											continue;
										}
										Vector v = (Vector)GraphTemplateCell.getCommonParameters((DefaultGraphCell)edge);
										for(int i=0;i<v.size();i++){
											cacheV.add(v.get(i));
										}
									}
								}
							}
						}
						else{
							//System.out.println("2-----------------");
							//组内成员
							Vector v = GraphTemplateCell.getGroupSoruceParameter(cell);
							for(int i=0;i<v.size();i++){
								cacheV.add(v.get(i));
							}
							//再找组
							Vector v1 = GraphTemplateCell.getCommonParameters((DefaultGraphCell)cell.getParent());
							for(int i=0;i<v1.size();i++){
								cacheV.add(v1.get(i));
							}
						}
					}
				}
			}
			else{
				if(cell.getParent() == null){
					//System.out.println("1-----------------");
					//组外成员
					DefaultPort port = (DefaultPort)cell.getChildAt(0);
					Set set = port.getEdges();
					Iterator iter = set.iterator();
					//System.out.println("cell="+cell);
					while(iter.hasNext()){
						DefaultEdge edge = (DefaultEdge)iter.next();
						//System.out.println("null================0:"+edge);
						if(edge.getSource() == null){
						//	System.out.println("null================1");
							continue;
						}
						if(((DefaultPort)edge.getSource()).getParent() == null){
						//	System.out.println("null================2");
							continue;
						}
						if(((DefaultPort)edge.getSource()).getParent().equals(cell)){
							//iter.next();
							continue;
						}
						Vector v = (Vector)GraphTemplateCell.getCommonParameters((DefaultGraphCell)edge);
						for(int i=0;i<v.size();i++){
							cacheV.add(v.get(i));
						}
					}
				}
				else{
					//System.out.println("2-----------------");
					//组内成员
					Vector v = GraphTemplateCell.getGroupSoruceParameter(cell);
					for(int i=0;i<v.size();i++){
						cacheV.add(v.get(i));
					}
					//再找组
					Vector v1 = GraphTemplateCell.getCommonParameters((DefaultGraphCell)cell.getParent());
					for(int i=0;i<v1.size();i++){
						cacheV.add(v1.get(i));
					}
				}
			}
		}
		
		return cacheV;
	}
	
	//找组内参数
	public static Vector getGroupSoruceParameter(DefaultGraphCell cell){
		Vector cacheV = new Vector();
		
		//System.out.println("getGroupSourceParameter:"+cell);
		if(cell != null){
			DefaultPort port = (DefaultPort)cell.getChildAt(0);
			Set set = port.getEdges();
			Iterator iter = set.iterator();
			//System.out.println("cell="+cell);
			while(iter.hasNext()){
				DefaultEdge edge = (DefaultEdge)iter.next();
				//System.out.println("null================0:"+edge);
				if(edge.getSource() == null){
				//	System.out.println("null================1");
					continue;
				}
				if(((DefaultPort)edge.getSource()).getParent() == null){
				//	System.out.println("null================2");
					continue;
				}
				if(((DefaultPort)edge.getSource()).getParent().equals(cell)){
					//iter.next();
					continue;
				}
				Vector v = (Vector)GraphTemplateCell.getSubGroupParameters((DefaultGraphCell)edge);
				for(int i=0;i<v.size();i++){
					cacheV.add(v.get(i));
				}
			}
		}
		
		return cacheV;
	}
	public static Vector getSubGroupParameters(DefaultGraphCell cell){
		Vector cacheV = new Vector();
		
		//System.out.println("class:"+cell.getClass());
		if(cell != null){
			if(cell instanceof DefaultEdge){
				//System.out.println("edge..........1:"+cell);
				DefaultEdge edge = (DefaultEdge)cell;
				if(edge.getSource()!=null){
					if(FlowGraphConstants.getInputTemplate(cell.getAttributes()) != null){
						//System.out.println("cell1===========");
						InputParameters ps = (InputParameters)FlowGraphConstants.getInputTemplate(cell.getAttributes());
						if(ps != null && FlowGraphConstants.getCellID(cell.getAttributes()) != null){
						//	System.out.println("cell2===========");
							for(int i=0;i<ps.getParameters().size();i++){
								InputParameter p = (InputParameter)ps.getParameters().get(i);
								//System.out.println(FlowGraphConstants.getCellID(cell.getAttributes()).toString()+"."+p.getName());
								cacheV.add(FlowGraphConstants.getCellID(cell.getAttributes()).toString()+"_"+p.getName());
							}
						}
					}
					//System.out.println("edge..........2");
					DefaultPort port = (DefaultPort)edge.getSource();
					if(port.getParent() != null){
						//System.out.println("edge..........3");
						Vector v = getSubGroupParameters(port);
						if(v != null){
							//System.out.println("edge..........4");
							for(int i=0;i<v.size();i++){
								cacheV.add(v.get(i));
							}
						}
					}
				}
			}
			else if(cell instanceof DefaultPort){
				//System.out.println("port1===========");
				if(cell.getParent() != null){
					//System.out.println("port2===========");
					DefaultGraphCell parent = (DefaultGraphCell)cell.getParent();
					Vector v = getSubGroupParameters(parent);
					if(v != null){
						//System.out.println("port3===========");
						for(int i=0;i<v.size();i++){
							cacheV.add(v.get(i));
						}
					}
				}
			}
			else if(cell instanceof GraphTemplateCell){
				//System.out.println("cell0-------------------"+cell);
				if(FlowGraphConstants.getOutputTemplate(cell.getAttributes()) != null){
					//System.out.println("cell1===========");
					Parameters ps = (Parameters)FlowGraphConstants.getOutputTemplate(cell.getAttributes());
					if(ps != null && FlowGraphConstants.getCellID(cell.getAttributes()) != null){
					//	System.out.println("cell2===========");
						for(int i=0;i<ps.getParameters().size();i++){
							Parameter p = (Parameter)ps.getParameters().get(i);
							//System.out.println(FlowGraphConstants.getCellID(cell.getAttributes()).toString()+"."+p.getName());
							cacheV.add(FlowGraphConstants.getCellID(cell.getAttributes()).toString()+"_"+p.getName());
						}
					}
				}
				if(cell.getChildCount() > 0){
					//System.out.println("cell3-------------------");
					DefaultPort port = (DefaultPort)cell.getChildAt(0);
					if(port != null){
					//	System.out.println("cell4-------------------");
						Set set = port.getEdges();
						if(set != null){
						//	System.out.println("cell5-------------------");
							Iterator iter = set.iterator();
							while(iter.hasNext()){
							//	System.out.println("cell6-------------------");
								DefaultEdge edge = (DefaultEdge)iter.next();
								if(edge.getSource()==null) continue;
								if(((DefaultPort)edge.getSource()).getParent()==null) continue;
								if(((DefaultPort)edge.getSource()).getParent().equals(cell)){
									continue;
								}
								
								//System.out.println("cell7-------------------");
								Vector v = getSubGroupParameters(edge);
								if(v != null){
									//System.out.println("cell8-------------------");
									for(int j=0;j<v.size();j++){
									//	System.out.println("cell9-------------------");
										cacheV.add(v.get(j));
									}
								}
							}
						}
					}
				}				
			}
		}
		
		return cacheV;
	}
	
	public static Vector getCommonParameters(DefaultGraphCell cell){
		Vector cacheV = new Vector();
		//System.out.println("class:"+cell.getClass());
		if(cell != null){
			if(cell instanceof DefaultEdge){
				//System.out.println("edge..........1:"+cell);
				DefaultEdge edge = (DefaultEdge)cell;
				if(edge.getSource()!=null){
					if(FlowGraphConstants.getInputTemplate(cell.getAttributes()) != null){
						//System.out.println("cell1===========");
						InputParameters ps = (InputParameters)FlowGraphConstants.getInputTemplate(cell.getAttributes());
						if(ps != null && FlowGraphConstants.getCellID(cell.getAttributes()) != null){
						//	System.out.println("cell2===========");
							for(int i=0;i<ps.getParameters().size();i++){
								InputParameter p = (InputParameter)ps.getParameters().get(i);
								//System.out.println(FlowGraphConstants.getCellID(cell.getAttributes()).toString()+"."+p.getName());
								cacheV.add(FlowGraphConstants.getCellID(cell.getAttributes()).toString()+"_"+p.getName());
							}
						}
					}
					//System.out.println("edge..........2");
					DefaultPort port = (DefaultPort)edge.getSource();
					if(port.getParent() != null){
						//System.out.println("edge..........3");
						Vector v = getCommonParameters(port);
						if(v != null){
							//System.out.println("edge..........4");
							for(int i=0;i<v.size();i++){
								cacheV.add(v.get(i));
							}
						}
					}
				}
			}
			else if(cell instanceof DefaultPort){
				//System.out.println("port1===========");
				if(cell.getParent() != null){
					//System.out.println("port2===========");
					DefaultGraphCell parent = (DefaultGraphCell)cell.getParent();
					Vector v = getCommonParameters(parent);
					if(v != null){
						//System.out.println("port3===========");
						for(int i=0;i<v.size();i++){
							cacheV.add(v.get(i));
						}
					}
				}
			}
			else if(cell instanceof GraphTemplateCell){
				//System.out.println("cell0-------------------"+cell);
				if(FlowGraphConstants.getOutputTemplate(cell.getAttributes()) != null){
					//System.out.println("cell1===========");
					Parameters ps = (Parameters)FlowGraphConstants.getOutputTemplate(cell.getAttributes());
					if(ps != null && FlowGraphConstants.getCellID(cell.getAttributes()) != null){
					//	System.out.println("cell2===========");
						for(int i=0;i<ps.getParameters().size();i++){
							Parameter p = (Parameter)ps.getParameters().get(i);
							//System.out.println(FlowGraphConstants.getCellID(cell.getAttributes()).toString()+"."+p.getName());
							cacheV.add(FlowGraphConstants.getCellID(cell.getAttributes()).toString()+"_"+p.getName());
						}
					}
				}
				if(FlowGraphConstants.getTemplateType(cell.getAttributes()) != null){
					if(FlowGraphConstants.getTemplateType(cell.getAttributes()).toString().equals(TemplateConstants.GROUP_TEMPLATE)){
						//当是组的时候
						//找父节点
						if(cell.getChildCount() > 0){
							//System.out.println("cell3-------------------");
							for(int i=0;i<cell.getChildCount();i++){
								if(cell.getChildAt(i) instanceof DefaultPort){
									DefaultPort port = (DefaultPort)cell.getChildAt(i);
									if(port != null){
									//	System.out.println("cell4-------------------");
										Set set = port.getEdges();
										if(set != null){
										//	System.out.println("cell5-------------------");
											Iterator iter = set.iterator();
											while(iter.hasNext()){
											//	System.out.println("cell6-------------------");
												DefaultEdge edge = (DefaultEdge)iter.next();
												if(edge.getSource()==null) continue;
												if(((DefaultPort)edge.getSource()).getParent()==null) continue;
												if(((DefaultPort)edge.getSource()).getParent().equals(cell)){
													continue;
												}
												
												//System.out.println("cell7-------------------");
												Vector v = getCommonParameters(edge);
												if(v != null){
													//System.out.println("cell8-------------------");
													for(int j=0;j<v.size();j++){
													//	System.out.println("cell9-------------------");
														cacheV.add(v.get(j));
													}
												}
											}
										}
									}									
								}
							}
						}
					}
					else{
						//非组的时候
						if(cell.getParent() == null){
							//组外节点
							if(cell.getChildCount() > 0){
								//System.out.println("cell3-------------------");
								DefaultPort port = (DefaultPort)cell.getChildAt(0);
								if(port != null){
								//	System.out.println("cell4-------------------");
									Set set = port.getEdges();
									if(set != null){
									//	System.out.println("cell5-------------------");
										Iterator iter = set.iterator();
										while(iter.hasNext()){
										//	System.out.println("cell6-------------------");
											DefaultEdge edge = (DefaultEdge)iter.next();
											if(edge.getSource()==null) continue;
											if(((DefaultPort)edge.getSource()).getParent()==null) continue;
											if(((DefaultPort)edge.getSource()).getParent().equals(cell)){
												continue;
											}
											
											//System.out.println("cell7-------------------");
											Vector v = getCommonParameters(edge);
											if(v != null){
												//System.out.println("cell8-------------------");
												for(int j=0;j<v.size();j++){
												//	System.out.println("cell9-------------------");
													cacheV.add(v.get(j));
												}
											}
										}
									}
								}
							}
						}
					}
				}				
			}
		}
		
		return cacheV;
	}
	
	public static void PrintGraphCell(Object cell){
		System.out.println("PrintGraphCell..........1");
		ByteArrayOutputStream bout = new ByteArrayOutputStream();
		XMLEncoder enc = new XMLEncoder(bout);
		enc.writeObject(cell);
		enc.close();
		System.out.println(bout);
		System.out.println("PrintGraphCell..........2");
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -