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

📄 jfoperationmanager.java

📁 用Java开发的、实现类似Visio功能的应用程序源码
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
	public void addNew(Object obj, Port attachPort1, Port attachPort2){
		if (obj==null) return;
		
		if (obj instanceof AbstractObject){
			JFOperation op  =new JFOperationNew(m_page,obj,attachPort1,attachPort2);
			addOperation(op);
		}
	}                   

	/** add a paste operation to undo list
	 *  @param objList An object list to be pasted.
	 */
	public void addPaste(ObjectList objList){ 
		if (objList==null || objList.size()==0) return;
		
		JFOperation op  =new JFOperationPaste(m_page,objList);
		addOperation(op);
	}                   

	/** add a remove operation to undo list
	 *  @param objList An object list to be removed.
	 */
	public void addRemove(ObjectList objList){ 
		if (objList==null || objList.size()==0) return;
		
		JFOperation op  =new JFOperationRemove(m_page,objList);
		addOperation(op);
	}                   


	//*******************  move node operation  ****************************************************

	/** add a start moving node operation to undo list
	 *  @param node A node to be moved.
	 */
	public void addStartMoveNode(Node node){ 
		if (node==null)
			return;
			
		Object obj  	=node.getParent();
		if (obj==null || !(obj instanceof AbstractShape)) return;
		
		AbstractShape aShape	=(AbstractShape)obj;
		JFOperation lastOp	=getLastOperation();
		if (lastOp!=null && !(lastOp instanceof JFOperationMoveNode)){
			lastOp	=null;
		}

		
		if (aShape instanceof JFLine ||
		    aShape instanceof JFRegularLine ||
		    aShape instanceof JFPolygon){

				JFOperationMoveNode op	=new JFOperationMoveNode();
		    		op.setStartMoveNode(m_page,obj,lastOp);
				addOperation(op);

		}else{
				//do nothing for objects except JFLine,JFRegularLine and JFPolygon in a 'start moving node' action.
		}
		
	}                   


	/** add a finish moving node operation to undo list
	 *  @param node A node to be moved.
	 *  @param port A port of other object that is about to be attached.
	 *  @param x1,y1 The original position of the node.
	 *  @param x2,y2 The final position of the node.
	 */
	public void addFinishMoveNode(Node node,Port port,double x1,double y1, double x2, double y2){ 
		if (node==null)
			return;
			
		Object obj  	=node.getParent();
		if (obj==null || !(obj instanceof AbstractShape)) return;
		
		AbstractShape aShape	=(AbstractShape)obj;
		JFOperation lastOp	=getLastOperation();
		if (lastOp!=null && !(lastOp instanceof JFOperationMoveNode)){
			lastOp	=null;
		}

		
		if (aShape instanceof JFLine ||
		    aShape instanceof JFRegularLine ||
		    aShape instanceof JFPolygon){
				if (lastOp!=null){
		    			JFOperationMoveNode op	=(JFOperationMoveNode)lastOp;
					op.setFinishMoveNode(obj,port);
				}
		}else{
				JFOperationMoveNode op	=new JFOperationMoveNode();
		    		op.setMoveNode(m_page,obj,node,x1,y1,x2,y2);
				addOperation(op);
			
		}
	}                   


	//*******************  port operation  ****************************************************


	/** add a new port operation to undo list
	 *    @param port A new added port.
	 */
	public void addNewPort(Port port){
		if (port==null) return;
		
		JFOperation op  =new JFOperationAddPort(m_page,port);
		addOperation(op);

	}                   

	/** add a remove port operation to undo list
	 *    @param port A port currently removed.
	 */
	public void addRemovePort(Port port){
		if (port==null) return;
		
		JFOperation op  =new JFOperationRemovePort(m_page,port);
		addOperation(op);

	}                   


	/**  add a bind ports operation to undo list
	 *    @param mousePos Current mouse position.
	 */
	public void addBindPorts(JFPoint mousePos){
		if (mousePos==null) return;
		
		JFOperation op  =new JFOperationBindPorts(m_page,mousePos);
		addOperation(op);

	}                   


	/**  add an unbind ports operation to undo list
	 *    @param mousePos Current mouse position.
	 */
	public void addUnbindPorts(JFPoint mousePos){
		if (mousePos==null) return;
		
		JFOperation op  =new JFOperationUnbindPorts(m_page,mousePos);
		addOperation(op);

	}                   


	//*******************  group operation  ****************************************************

	/**  add a group shapes operation to undo list
	 *    @param g A group newly created.
	 */
	public void addGroup(JFGroup g){
		if (g==null) return;
		
		JFOperation op  =new JFOperationGroup(m_page,g);
		addOperation(op);
	}                   

	/**  add an ungroup shapes operation to undo list
	 *    @param l An object collection to be ungrouped.
	 */
	public void addUngroup(List l){
		if (l==null) return;
		
		JFOperation op  =new JFOperationUngroup(m_page,l);
		addOperation(op);
	}                   

	//*******************  send to back/bring to front operation  ****************************************************


	/**  add a send to back operation to undo list
	 *    @param l An object collection to be sent to back.
	 */
	public void addSendToBack(List l){
		if (l==null) return;
		
		JFOperation op  =new JFOperationToBack(m_page,l,JFOperationToBack.MOVETOWARDS_BACK);
		addOperation(op);
	}                   

	/**  add a bring to front operation to undo list
	 *    @param l An object collection to be brought to back.
	 */
	public void addBringToFront(List l){
		if (l==null) return;
		
		JFOperation op  =new JFOperationToBack(m_page,l,JFOperationToBack.MOVETOWARDS_FRONT);
		addOperation(op);
	}                   


	//*******************  text/font/lineformat/fillformat changed operation  ****************************************************


	/**  add a modify text operation to undo list
	 *    @param obj An object that to be changed text.
	 *    @param oldText Last text assigned.
	 *    @param newText A new text assigned.
	 */
	public void addModifyText(AbstractObject obj,String oldText, String newText){
		if (obj==null) return;
		
		JFOperation op  =new JFOperationModifyText(m_page,obj,oldText,newText);
		addOperation(op);
	}                   


	/**  add a modify properties operation to undo list
	 *    @param obj An object that to be changed properties.
	 *    @param oldProperties Last properties assigned.
	 *    @param newProperties New properties assigned.
	 */
	public void addModifyProperties(AbstractObject obj,ObjectList oldProperties, ObjectList newProperties){
		if (obj==null || oldProperties==null || newProperties==null) return;
		
		JFOperation op  =new JFOperationModifyProperty(m_page,obj,oldProperties,newProperties);
		addOperation(op);
	}                   

	/**  add a modify arrow operation to undo list
	 *    @param l An object list that to be changed arrow.
	 *    @param newArrow A new arrow assigned.
	 */
	public void addModifyArrow(List l, Arrow newArrow){
		if (l==null || newArrow==null) return;
		
		JFOperation op  =new JFOperationModifyArrow(m_page,l,newArrow);
		addOperation(op);
	}                   

	/**  add a modify fontFormat operation to undo list
	 *    @param l An object list that to be changed fontFormat.
	 *    @param newFontFormat A new fontFormat assigned.
	 */
	public void addModifyFontFormat(List l, FontFormat newFontFormat){
		if (l==null || newFontFormat==null) return;
		
		JFOperation op  =new JFOperationModifyFontFormat(m_page,l,newFontFormat);
		addOperation(op);
	}                   


	/**  add a modify fillFormat operation to undo list
	 *    @param l An object list that to be changed fillFormat.
	 *    @param newFillFormat A new fillFormat assigned.
	 */
	public void addModifyFillFormat(List l, FillFormat newFillFormat){
		if (l==null || newFillFormat==null) return;
		
		JFOperation op  =new JFOperationModifyFillFormat(m_page,l,newFillFormat);
		addOperation(op);
	}                   

	/**  add a modify lineFormat operation to undo list
	 *    @param l An object list that to be changed lineFormat.
	 *    @param newLineFormat A new lineFormat assigned.
	 */
	public void addModifyLineFormat(List l, LineFormat newLineFormat){
		if (l==null || newLineFormat==null) return;
		
		JFOperation op  =new JFOperationModifyLineFormat(m_page,l,newLineFormat);
		addOperation(op);
	}                   


	/**  add a modify layers operation to undo list
	 *    @param oldLayers An old layers checkitem list.
	 *    @param newLayers An new layers checkitem list.
	 */
	public void addModifyLayers(List oldLayers, List newLayers){
		if (oldLayers==null || oldLayers.size()==0 || newLayers==null || newLayers.size()==0)
			return;
		
		JFOperation op  =new JFOperationModifyLayers(m_page,oldLayers,newLayers);
		addOperation(op);
	}                   


	/**  add a zoom operation to undo list
	 *    @param oldZoomScale Old zoom scale.
	 *    @param newZoomScale New zoom scale.
	 */        
	public void addZoom(double oldZoomScale, double newZoomScale){
		if (oldZoomScale==newZoomScale)
			return;
		
		JFOperation op  =new JFOperationZoom(m_page,oldZoomScale,newZoomScale);
		addOperation(op);
	}                   



}

⌨️ 快捷键说明

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