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

📄 actiondispatcher.java

📁 用Java开发的、实现类似Visio功能的应用程序源码
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
    		JFPage page		=drawCanvas.getDrawPage();
				    		
		if (ActionConst.CMD_EDIT_SELECTALL.equals(actionName)){  //select all operation
            		selection.clear();
            		selection.add(page.getCurrentLayer().getShapeList().getList());
            		drawCanvas.repaint();

		}else if (ActionConst.CMD_EDIT_COPY.equals(actionName)){  //copy operation
            		JFClipboard.copyToClipboard(selection.getList());
		
		}else if (ActionConst.CMD_EDIT_CUT.equals(actionName)){  //cut operation
            		JFClipboard.copyToClipboard(selection.getList());
            		removeSelection();
		
		}else if (ActionConst.CMD_EDIT_PASTE.equals(actionName)){  //paste operation
			ObjectList destList	=drawCanvas.getDrawPage().getCurrentLayer().getShapeList();
			int objectId		=destList.newObjectId();
            		ObjectList srcList	=JFClipboard.pasteFromClipboard(drawCanvas,objectId);
            		if (srcList!=null && srcList.size()>0){
				destList.getList().addAll(srcList.getList());
				

    				if (page.isHidePorts())
    					destList.setShowDesign(false); 
    				else
    					destList.setShowDesign(true);
								
				selection.clear();
				selection.add(srcList.getList());            			
				drawCanvas.getOperationManager().addPaste(srcList);

				//re-set zoomscale of the objects in the list.
				double zoomScale	=drawCanvas.getDrawPage().getZoomScale();
				srcList.setZoomScale(zoomScale);
            		}
            		drawCanvas.repaint();
		
		}else if (ActionConst.CMD_EDIT_DELETE.equals(actionName)){  //delete operation
                    	int n = JOptionPane.showConfirmDialog(
                                   null,
                                   CADResource.getString("removeshapes"),
                                   CADResource.getString("sys.warn"),
                                    JOptionPane.YES_NO_OPTION);       
                        
                        if (n==JOptionPane.YES_OPTION){
                        	removeSelection();
                        }
		}	

		GUIUtils.garbageCollection();
            		
        }

       /* 
        //draw table
	private void drawTable(){
	    	//current drawing canvas
    		DrawCanvas drawCanvas =getCurrentDrawCanvas();

    		if (drawCanvas!=null){
    			JFPage page	=drawCanvas.getDrawPage();
    			JFrame	f	=GUIUtils.getJFrame(m_pane);     
    			if (TableDialog.getNewTableSize(f)){
    				int rows	=TableDialog.m_rows;
    				int cols	=TableDialog.m_cols;

				ObjectList objList	=page.getCurrentLayer().getShapeList();
				int newObjectId		=objList.newObjectId();

				//view center of drawing canvas
				JFPoint center	=drawCanvas.getViewCenter();
				int width	=JFCell.CELLWIDTH_DEFAULT * cols;
				int height	=JFCell.CELLHEIGHT_DEFAULT * rows;
				Rect rect	=new Rect(0,0,width,height);
				
				//create this table			
				JFTable table		=new JFTable();
				table.initCell(rows,cols,rect);
				table.setObjectId(newObjectId);

				//adjust poistion of table to the center of canvas.
				table.moveBy(center.getX()-width/2,center.getY()-height/2);
				table.setZoomScale(page.getZoomScale());				
				
    				//register a new operations to operation manager.
    				drawCanvas.getOperationManager().addNew(table,null,null);
				objList.add(table); 
				page.setModified(true);
				drawCanvas.getSelection().clear();
				drawCanvas.getSelection().getList().add(table);
				drawCanvas.repaint();		
    			}
    		}
	}
        */
            		
	private void removeSelection(){
	    	//current drawing canvas
    		DrawCanvas drawCanvas   =getCurrentDrawCanvas();
		Selection selection	=drawCanvas.getSelection();
		
		drawCanvas.getOperationManager().addRemove(selection.getList());
		List l=selection.getList().getList();

    		JFPage page	=drawCanvas.getDrawPage();
    		page.getCurrentLayer().getShapeList().removeAll(l);
		selection.clear();
		drawCanvas.repaint();    				
	}

    	/** Process print issues
    	 *  @param actionName Action name for printing issues.
    	 */
    	private  void processPrintIssues(String actionName){
	    	//current drawing canvas
    		DrawCanvas drawCanvas =getCurrentDrawCanvas();

    		if (drawCanvas!=null){ 
    			try{   
    				JFPage page	=drawCanvas.getDrawPage();
				if (ActionConst.CMD_FILE_PRINTPREVIEW.equals(actionName)){  //print preview
				 	
    					JFrame	f	=GUIUtils.getJFrame(m_pane);     
    					PreviewDialog.showPreviewDialog(f,page,drawCanvas.isMetric(),drawCanvas.getGridFormat());
    				 
    				 }else if (ActionConst.CMD_FILE_PRINT.equals(actionName)){  //print 

					GlobalSettings m_settings	=GlobalSettings.getInstance();
        		
					ExportBase export =new ExportPrinter();
					export.setUsePageBounds(false);
					double zoomScale =(1.0d * JFPageFormat.INCH) / JFPageFormat.INCH_SCREEN;
					export.setPage( page,true,zoomScale,
                        				m_settings.isExportWithGrid(),
                        				m_settings.isExportWithRuler(),
                        				drawCanvas.isMetric(),
                        				drawCanvas.getGridFormat());
					export.export();
    				 }
			}catch(Exception e){
				m_logger.error("processPrintIssues: "+e);
			}
    		}
    	}


    	/** Process page setup issues
    	 *  @param actionName Action name for page setup issues.
    	 */
    	private  void processPageSetupIssues(String actionName){
	    	//current drawing canvas
    		DrawCanvas drawCanvas =getCurrentDrawCanvas();

    		if (drawCanvas!=null){ 
    			try{
    				DrawPane   drawPane	=drawCanvas.getParentDrawPane();
				PageFormat f =PrinterJob.getPrinterJob().pageDialog(drawPane.getPageFormat().getPageFormat());
				drawPane.setPageFormat(f);
				drawCanvas.getDrawPage().setModified(true);
				drawCanvas.repaint();
			}catch(Exception e){
				m_logger.error("processPageSetupIssues :"+e);
			}
    		}
    	}


    	/** Process undo issues, undo, redo, etc.
    	 *  @param actionName Action name for edit issues.
    	 */
    	private  void processUndoIssues(String actionName){
	    	//current drawing canvas
    		DrawCanvas drawCanvas =getCurrentDrawCanvas();

    		if (drawCanvas!=null){ 
			drawCanvas.getDrawPage().setModified(true);

    			if (ActionConst.CMD_EDIT_UNDOSETUP.equals(actionName)){
    				JFrame	f	=GUIUtils.getJFrame(m_pane);     
    				int depth	=drawCanvas.getOperationManager().getDepth();
    				depth		=UndoSetupDialog.getNewUndoDepth(f,depth);
    				drawCanvas.getOperationManager().setDepth(depth);
    			}else{
				Selection selection	=drawCanvas.getSelection();

				JFPage    page  =drawCanvas.getDrawPage();
                		double oldZoomScale	=page.getZoomScale();	
	                
    				if (ActionConst.CMD_EDIT_UNDO.equals(actionName)){
    					List l=drawCanvas.getOperationManager().undo();
    					selection.clear();
    					if (l!=null)
    						selection.getList().setList(l);
   						
    				}else if (ActionConst.CMD_EDIT_REDO.equals(actionName)){
    					List l=drawCanvas.getOperationManager().redo();
    					selection.clear();
    					if (l!=null)
    						selection.getList().setList(l);
    				}

    				JFLayer layer	=page.getCurrentLayer();
    				if (layer!=null)
    					layer.setShowDesign(!page.isHidePorts());

                		double newZoomScale	=page.getZoomScale();	

				//layer name maybe changed in undo/redo layers.  
				m_pane.setLayerName(page.getCurrentLayer().getName());

				//zoom scale maybe changed in undo zoom.
				if (oldZoomScale!=newZoomScale){
					drawCanvas.setZoomScale(newZoomScale);
				}
    				drawCanvas.repaint();
    			}
    		}
    	}


    	/** Process layer issues. 
    	 *  @param actionName Action name for layer
    	 */
    	private  void processLayerIssues(String actionName){
                JFrame	f	=GUIUtils.getJFrame(m_pane);

	    	//current drawing canvas
    		DrawCanvas drawCanvas =getCurrentDrawCanvas();

    		if (drawCanvas!=null){ 
    		        JFPage    page  =drawCanvas.getDrawPage();

    			if (ActionConst.CMD_GRAPH_LAYERS.equals(actionName)){
    				List oldLayers	=page.getLayerItemList();
    				int lastLayerId	=page.getCurrentLayer().getObjectId();
            			if (LayerSetupDialog.layerSetup(f,page)){         

					drawCanvas.getDrawPage().setModified(true);

            				List newLayers =page.getLayerItemList();
					drawCanvas.getOperationManager().addModifyLayers(oldLayers,newLayers);
					
            				int thisLayerId	=page.getCurrentLayer().getObjectId();
            				if (lastLayerId!=thisLayerId){
            					//clear selection
            					Selection selection	=drawCanvas.getSelection();
            					selection.clear();
            				}
            				
            				m_pane.setLayerName(page.getCurrentLayer().getName());
            				drawCanvas.repaint();
            			}
    			}
    		}
    	}




    	/** Process help issues. about, online help,etc.
    	 *  @param actionName Action name for help
    	 */
    	private  void processHelpIssues(String actionName){
                JFrame	f	=GUIUtils.getJFrame(m_pane);
                
    		if (ActionConst.CMD_HELP_ABOUT.equals(actionName)){
            		AboutDialog.showAbout(f);
            		return;
    		}else if (ActionConst.CMD_HELP_WEBSITE.equals(actionName)){
    			try{
    				BrowserLauncher.openURL("http://www.jfimagine.com");
    			}catch(Exception e){
    				JOptionPane.showMessageDialog(null, "Cannot launch http://www.jfimagine.com:\n"+e.getMessage(), CADResource.getString("sys.warn"), JOptionPane.ERROR_MESSAGE); 
    			}
    			return;
    		}else if (ActionConst.CMD_HELP_MAILTO.equals(actionName)){
    			try{
    				BrowserLauncher.openURL("mailto:support@jfimagine.com");
    			}catch(Exception e){
    				JOptionPane.showMessageDialog(null, "Cannot launch mailto:cookieMaker@zjip.com:\n"+e.getMessage(), CADResource.getString("sys.warn"), JOptionPane.ERROR_MESSAGE); 
    			}
    			return;
    		}

    	}

    	/** Process libraries & templates issues.
    	 *  @param actionName Action name.
    	 */
    	private  void processLibIssues(String actionName){
		
		LibHelper helper	=LibHelper.getInstance();
		helper.showLibraryDialog(m_pane);
    		if (ActionConst.CMD_GRAPH_LIBRARY.equals(actionName)){
			return;
		}

		LibPanel  libraryPanel	=helper.getLibraryPanel();
		LibPanel  templatePanel	=helper.getTemplatePanel();
	
    		DrawCanvas drawCanvas   =getCurrentDrawCanvas();
		Selection selection	=drawCanvas.getSelection();

        	if (ActionConst.CMD_EDIT_ADDTOLIB.equals(actionName)){  //add current objects to library

        		if (selection.size()==0)
        			return; 

			//if a quadrant is in the list, raise an 'cannot add quadrant to library' error        			
			if (selection.hasQuadrant()){
        			JOptionPane.showMessageDialog(null, CADResource.getString("dialog.library.cannotaddquadrant"), CADResource.getString("sys.warn"), JOptionPane.ERROR_MESSAGE); 
        			return;
        		}

			AbstractLibrary lib	=libraryPanel.getCurrentLibrary();
			
			if (lib==null){
		  		int n = JOptionPane.showConfirmDialog(
                                   	null,
                                   	CADResource.getString("dialog.library.createnew"),
                                   	CADResource.getString("sys.warn"),
                                   	JOptionPane.YES_NO_OPTION);
                                   
					if (n==JOptionPane.YES_OPTION){
						try{

⌨️ 快捷键说明

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