📄 actiondispatcher.java
字号:
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 + -