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

📄 editoractions.java

📁 经典的java图像处理程序源码
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
					{						return;					}				}				else				{					filename = editor.getCurrentFile().getAbsolutePath();				}				try				{					String ext = filename							.substring(filename.lastIndexOf('.') + 1);					if (ext.equalsIgnoreCase("svg"))					{						mxUtils.writeFile(mxUtils.getXml(mxCellRenderer								.createSvgDocument(graph, null, 1, null, null)								.getDocumentElement()), filename);					}					else if (selectedFilter == vmlFileFilter)					{						mxUtils.writeFile(mxUtils.getXml(mxCellRenderer								.createVmlDocument(graph, null, 1, null, null)								.getDocumentElement()), filename);					}					else if (ext.equalsIgnoreCase("html"))					{						mxUtils.writeFile(mxUtils.getXml(mxCellRenderer								.createHtmlDocument(graph, null, 1, null, null)								.getDocumentElement()), filename);					}					else if (ext.equalsIgnoreCase("mxe")							|| ext.equalsIgnoreCase("xml"))					{						mxCodec codec = new mxCodec();						String xml = mxUtils.getXml(codec.encode(graph								.getModel()));						mxUtils.writeFile(xml, filename);						editor.setModified(false);						editor.setCurrentFile(new File(filename));					}					else					{						Color bg = null;						if ((!ext.equalsIgnoreCase("gif") && !ext								.equalsIgnoreCase("png"))								|| JOptionPane.showConfirmDialog(										graphComponent, mxResources												.get("transparentBackground")) != JOptionPane.YES_OPTION)						{							bg = graphComponent.getBackground();						}						BufferedImage image = mxCellRenderer								.createBufferedImage(graph, null, 1, bg,										graphComponent.isAntiAlias(), null,										graphComponent.getCanvas());						if (image != null)						{							ImageIO.write(image, ext, new File(filename));						}						else						{							JOptionPane.showMessageDialog(graphComponent,									mxResources.get("noImageData"));						}					}				}				catch (IOException e1)				{					e1.printStackTrace();				}			}		}	}	/**	 *	 */	public static class SelectShortestPathAction extends AbstractAction	{		/**		 * 		 */		protected boolean directed;		/**		 * 		 */		public SelectShortestPathAction(boolean directed)		{			this.directed = directed;		}		/**		 * 		 */		public void actionPerformed(ActionEvent e)		{			if (e.getSource() instanceof mxGraphComponent)			{				mxGraphComponent graphComponent = (mxGraphComponent) e						.getSource();				mxGraph graph = graphComponent.getGraph();				mxIGraphModel model = graph.getModel();				Object source = null;				Object target = null;				Object[] cells = graph.getSelectionCells();				for (int i = 0; i < cells.length; i++)				{					if (model.isVertex(cells[i]))					{						if (source == null)						{							source = cells[i];						}						else if (target == null)						{							target = cells[i];						}					}					if (source != null && target != null)					{						break;					}				}				if (source != null && target != null)				{					int steps = graph.getChildEdges(graph.getDefaultParent()).length;					Object[] path = mxGraphAlgebra.getInstance()							.getShortestPath(graph, source, target,									new mxDistanceCostFunction(), steps,									directed);					graph.setSelectionCells(path);				}				else				{					JOptionPane.showMessageDialog(graphComponent, mxResources							.get("noSourceAndTargetSelected"));				}			}		}	}	/**	 *	 */	public static class SelectSpanningTreeAction extends AbstractAction	{		/**		 * 		 */		protected boolean directed;		/**		 * 		 */		public SelectSpanningTreeAction(boolean directed)		{			this.directed = directed;		}		/**		 * 		 */		public void actionPerformed(ActionEvent e)		{			if (e.getSource() instanceof mxGraphComponent)			{				mxGraphComponent graphComponent = (mxGraphComponent) e						.getSource();				mxGraph graph = graphComponent.getGraph();				mxIGraphModel model = graph.getModel();				Object parent = graph.getDefaultParent();				Object[] cells = graph.getSelectionCells();				for (int i = 0; i < cells.length; i++)				{					if (model.getChildCount(cells[i]) > 0)					{						parent = cells[i];						break;					}				}				Object[] v = graph.getChildVertices(parent);				Object[] mst = mxGraphAlgebra.getInstance()						.getMinimumSpanningTree(graph, v,								new mxDistanceCostFunction(), directed);				graph.setSelectionCells(mst);			}		}	}	/**	 *	 */	public static class ToggleDirtyAction extends AbstractAction	{		/**		 * 		 */		public void actionPerformed(ActionEvent e)		{			if (e.getSource() instanceof mxGraphComponent)			{				mxGraphComponent graphComponent = (mxGraphComponent) e						.getSource();				graphComponent.showDirtyRectangle = !graphComponent.showDirtyRectangle;			}		}	}	/**	 *	 */	public static class ToggleImagePreviewAction extends AbstractAction	{		/**		 * 		 */		public void actionPerformed(ActionEvent e)		{			if (e.getSource() instanceof mxGraphComponent)			{				mxGraphComponent graphComponent = (mxGraphComponent) e						.getSource();				graphComponent.getGraphHandler().setImagePreview(						!graphComponent.getGraphHandler().isImagePreview());			}		}	}	/**	 *	 */	public static class ToggleConnectModeAction extends AbstractAction	{		/**		 * 		 */		public void actionPerformed(ActionEvent e)		{			if (e.getSource() instanceof mxGraphComponent)			{				mxGraphComponent graphComponent = (mxGraphComponent) e						.getSource();				mxConnectionHandler handler = graphComponent						.getConnectionHandler();				handler.setHandleEnabled(!handler.isHandleEnabled());			}		}	}	/**	 *	 */	public static class ToggleCreateTargetItem extends JCheckBoxMenuItem	{		/**		 * 		 */		public ToggleCreateTargetItem(final BasicGraphEditor editor, String name)		{			super(name);			setSelected(true);			addActionListener(new ActionListener()			{				/**				 * 				 */				public void actionPerformed(ActionEvent e)				{					mxGraphComponent graphComponent = editor							.getGraphComponent();					if (graphComponent != null)					{						mxConnectionHandler handler = graphComponent								.getConnectionHandler();						handler.setCreateTarget(!handler.isCreateTarget());						setSelected(handler.isCreateTarget());					}				}			});		}	}	/**	 *	 */	public static class PromptPropertyAction extends AbstractAction	{		/**		 * 		 */		protected Object target;		/**		 * 		 */		protected String fieldname, message;		/**		 * 		 */		public PromptPropertyAction(Object target, String message)		{			this(target, message, message);		}		/**		 * 		 */		public PromptPropertyAction(Object target, String message,				String fieldname)		{			this.target = target;			this.message = message;			this.fieldname = fieldname;		}		/**		 * 		 */		public void actionPerformed(ActionEvent e)		{			if (e.getSource() instanceof Component)			{				try				{					Method getter = target.getClass().getMethod(							"get" + fieldname);					Object current = getter.invoke(target);					// TODO: Support other atomic types					if (current instanceof Integer)					{						Method setter = target.getClass().getMethod(								"set" + fieldname, new Class[] { int.class });						String value = (String) JOptionPane.showInputDialog(								(Component) e.getSource(), "Value", message,								JOptionPane.PLAIN_MESSAGE, null, null, current);						if (value != null)						{							setter.invoke(target, Integer.parseInt(value));						}					}				}				catch (Exception ex)				{					ex.printStackTrace();				}			}			// Repaints the graph component			if (e.getSource() instanceof mxGraphComponent)			{				mxGraphComponent graphComponent = (mxGraphComponent) e						.getSource();				graphComponent.repaint();			}		}	}	/**	 *	 */	public static class TogglePropertyItem extends JCheckBoxMenuItem	{		/**		 * 		 */		public TogglePropertyItem(Object target, String name, String fieldname)		{			this(target, name, fieldname, false);		}		/**		 * 		 */		public TogglePropertyItem(Object target, String name, String fieldname,				boolean refresh)		{			this(target, name, fieldname, refresh, null);		}		/**		 * 		 */		public TogglePropertyItem(final Object target, String name,				final String fieldname, final boolean refresh,				ActionListener listener)		{			super(name);			// Since action listeners are processed last to first we add the given			// listener here which means it will be processed after the one below			if (listener != null)			{				addActionListener(listener);			}			addActionListener(new ActionListener()			{				/**				 * 				 */				public void actionPerformed(ActionEvent e)				{					execute(target, fieldname, refresh);				}			});			PropertyChangeListener propertyChangeListener = new PropertyChangeListener()			{				/*				 * (non-Javadoc)				 * @see java.beans.PropertyChangeListener#propertyChange(java.beans.PropertyChangeEvent)				 */				public void propertyChange(PropertyChangeEvent evt)				{					if (evt.getPropertyName().equalsIgnoreCase(fieldname))					{						update(target, fieldname);					}				}			};			if (target instanceof mxGraphComponent)			{				((mxGraphComponent) target)						.addPropertyChangeListener(propertyChangeListener);			}			else if (target instanceof mxGraph)			{				((mxGraph) target)						.addPropertyChangeListener(propertyChangeListener);			}			update(target, fieldname);		}		/**		 * 		 */		public void update(Object target, String fieldname)		{			try			{				Method getter = target.getClass().getMethod("is" + fieldname);				Object current = getter.invoke(target);				if (current instanceof Boolean)				{					setSelected(((Boolean) current).booleanValue());				}			}			catch (Exception e)			{				e.printStackTrace();			}		}		/**		 * 		 */		public void execute(Object target, String fieldname, boolean refresh)		{			try			{				Method getter = target.getClass().getMethod("is" + fieldname);				Method setter = target.getClass().getMethod("set" + fieldname,						new Class[] { boolean.class });				Object current = getter.invoke(target);				if (current instanceof Boolean)				{					boolean value = !((Boolean) current).booleanValue();					setter.invoke(target, value);					setSelected(value);				}				if (refresh)				{					mxGraph graph = null;					if (target instanceof mxGraph)					{						graph = (mxGraph) target;					}					else if (target instanceof mxGraphComponent)					{						graph = ((mxGraphComponent) target).getGraph();					}					graph.refresh();				}			}			catch (Exception e)			{				e.printStackTrace();			}		}	}	/**	 *	 */	public static class HistoryAction extends AbstractAction	{		/**		 * 		 */		protected boolean undo;		/**		 * 		 */		public HistoryAction(boolean undo)		{			this.undo = undo;		}		/**		 * 		 */		public void actionPerformed(ActionEvent e)		{			BasicGraphEditor editor = getEditor(e);						if (editor != null)			{				if (undo)				{					editor.getUndoManager().undo();				}				else				{					editor.getUndoManager().redo();				}			}		}	}	/**	 *	 */	public static class FontStyleAction extends AbstractAction	{		/**		 * 		 */		protected boolean bold;		/**		 * 		 */		public FontStyleAction(boolean bold)		{			this.bold = bold;		}		/**		 * 		 */		public void actionPerformed(ActionEvent e)		{			if (e.getSource() instanceof mxGraphComponent)			{				mxGraphComponent graphComponent = (mxGraphComponent) e						.getSource();				Component editorComponent = null;				if (graphComponent.getCellEditor() instanceof mxCellEditor)				{					editorComponent = ((mxCellEditor) graphComponent							.getCellEditor()).getEditor();				}				if (editorComponent instanceof JEditorPane)				{					JEditorPane editorPane = (JEditorPane) editorComponent;					int start = editorPane.getSelectionStart();					int ende = editorPane.getSelectionEnd();					String text = editorPane.getSelectedText();					if (text == null)					{						text = "";					}					try					{						HTMLEditorKit editorKit = new HTMLEditorKit();						HTMLDocument document = (HTMLDocument) editorPane								.getDocument();						document.remove(start, (ende - start));						editorKit.insertHTML(document, start, ((bold) ? "<b>"								: "<i>")								+ text + ((bold) ? "</b>" : "</i>"), 0, 0,								(bold) ? HTML.Tag.B : HTML.Tag.I);					}

⌨️ 快捷键说明

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