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

📄 svgvisualresourcelistspanel.java

📁 完全基于java开发的svg矢量绘图工具
💻 JAVA
📖 第 1 页 / 共 4 页
字号:
									getVisualResources().getVisualResourcesToolkit().removeVisualResource(frame, newElement);									resourceState.setSelectedItemId(name, "");									refreshResources(RESOURCE_DELETED, name, null, newElement);								}								public void redo(){									getVisualResources().getVisualResourcesToolkit().appendVisualResource(frame, fparentElement, newElement);									resourceState.setSelectedItemId(name, id);									refreshResources(RESOURCE_NEW, name, newElement, null);								}							};												SVGUndoRedoActionList actionlist=new SVGUndoRedoActionList(action.getName());							actionlist.add(action);							getVisualResources().getSVGEditor().getUndoRedo().addActionList(frame, actionlist);						}												resourceState.setSelectedItemId(name, id);						frame.setModified(true);						refreshResources(RESOURCE_NEW, name, newElement, null);					}				}        	});    	}    }        /**     * duplicate the resource node corresponding to the given resource object     * @param resourceObject a resource object     */    protected void removeResource(SVGVisualResourceObject resourceObject){    	    	if(frame!=null && resourceObject!=null && resourceObject.canBeModified() && resourceObject.getParentNode()!=null){        	final Element fparentElement=(Element)resourceObject.getParentNode();        	final Element resourceElement=resourceObject.getInitialNode();        	final String name=resourceObject.getResourceModel().getName();        	final String id=resourceObject.getResourceId();        	        	frame.enqueue(new Runnable(){				public void run() {					//appending the newly created resource node to its parent node					getVisualResources().getVisualResourcesToolkit().removeVisualResource(frame, resourceElement);					//create the undo/redo action and insert it into the undo/redo stack					if(getVisualResources().getSVGEditor().getUndoRedo()!=null){						SVGUndoRedoAction action=new SVGUndoRedoAction(getVisualResources().undoredoresourcesremove){							public void undo(){								getVisualResources().getVisualResourcesToolkit().appendVisualResource(frame, fparentElement, resourceElement);								resourceState.setSelectedItemId(name, id);								refreshResources(RESOURCE_NEW, name, resourceElement, null);							}							public void redo(){								getVisualResources().getVisualResourcesToolkit().removeVisualResource(frame, resourceElement);								resourceState.setSelectedItemId(name, "");								refreshResources(RESOURCE_DELETED, name, null, resourceElement);							}						};										SVGUndoRedoActionList actionlist=new SVGUndoRedoActionList(action.getName());						actionlist.add(action);						getVisualResources().getSVGEditor().getUndoRedo().addActionList(frame, actionlist);					}										resourceState.setSelectedItemId(name, "");					frame.setModified(true);					refreshResources(RESOURCE_DELETED, name, null, resourceElement);				}        	});    	}    }        /**     * imports a resource node from the visual resource store     * @param parentElement the parent element     * @param resourceObject a resource object     */    protected void importResource(Element parentElement, SVGVisualResourceObject resourceObject){    	    	if(frame!=null && resourceObject!=null && ! resourceObject.canBeModified() && parentElement!=null){        	final Element fparentElement=parentElement, resourceNode=resourceObject.getInitialNode();        	final String name=resourceObject.getResourceModel().getName();           	frame.enqueue(new Runnable(){				public void run() {		        	final Element newElement=getVisualResources().getVisualResourcesToolkit().importVisualResource(frame, fparentElement, resourceNode);										if(newElement!=null){									        	final String id=newElement.getAttribute("id");												//appending the newly created resource node to its parent node						getVisualResources().getVisualResourcesToolkit().appendVisualResource(frame, fparentElement, newElement);												//create the undo/redo action and insert it into the undo/redo stack						if(getVisualResources().getSVGEditor().getUndoRedo()!=null){							SVGUndoRedoAction action=new SVGUndoRedoAction(getVisualResources().undoredoresources){								public void undo(){									getVisualResources().getVisualResourcesToolkit().removeVisualResource(frame, newElement);									resourceState.setSelectedItemId(name, "");									refreshResources(RESOURCE_DELETED, name, null, newElement);								}								public void redo(){									getVisualResources().getVisualResourcesToolkit().appendVisualResource(frame, fparentElement, newElement);									resourceState.setSelectedItemId(name, id);									refreshResources(RESOURCE_NEW, name, newElement, null);								}							};												SVGUndoRedoActionList actionlist=new SVGUndoRedoActionList(action.getName());							actionlist.add(action);							getVisualResources().getSVGEditor().getUndoRedo().addActionList(frame, actionlist);						}												resourceState.setSelectedItemId(name, id);						frame.setModified(true);						refreshResources(RESOURCE_NEW, name, null, newElement);					}				}        	});    	}    }        /**     * modifies the properties of the given resource     * @param resourceObject a resource object     */    protected void modifyProperties(SVGVisualResourceObject resourceObject){    	if(frame!=null && resourceObject!=null && resourceObject.canBeModified()){        	final SVGVisualResourceObject fresourceObject=resourceObject;        	final Element oldElement=fresourceObject.getInitialNode();        	final Element newElement=fresourceObject.getResourceNode();        	final Element parentElement=(Element)resourceObject.getParentNode();        	final String name=resourceObject.getResourceModel().getName();        	        	frame.enqueue(new Runnable(){				public void run() {					//displays the dialog 				    int returnValue=SVGVisualResourceResourceModifier.showPropertyModifierDialog(fresourceObject);				    if(returnValue==SVGVisualResourceResourceModifier.OK){				        					    //applying the modifications						fresourceObject.applyChanges();						//getting the ids						final String oldId=oldElement.getAttribute("id"), newId=fresourceObject.getResourceId();						//create the undo/redo action and insert it into the undo/redo stack						if(getVisualResources().getSVGEditor().getUndoRedo()!=null){							SVGUndoRedoAction action=new SVGUndoRedoAction(getVisualResources().undoredoresources){								@Override								public void undo(){									//removing the modified node and adding the initial node									getVisualResources().getVisualResourcesToolkit().removeVisualResource(frame, newElement);									getVisualResources().getVisualResourcesToolkit().appendVisualResource(frame, parentElement, oldElement);									//modifying the id of the resource in the map of the resources in the canvas									if(! newId.equals(oldId)){									    									    frame.modifyResourceId(oldId, newId);									}																		//refreshing the nodes that use the resource									frame.refreshNodesUsingResource(oldId);																		//refreshing the resources lists									resourceState.setSelectedItemId(name, oldId);									refreshResources(RESOURCE_MODIFIED, name, oldElement, newElement);								}								@Override								public void redo(){									//removing the initial node and adding the modified node									getVisualResources().getVisualResourcesToolkit().removeVisualResource(frame, oldElement);									getVisualResources().getVisualResourcesToolkit().appendVisualResource(frame, parentElement, newElement);																		if(! newId.equals(oldId)){									    										//modifying the id of the resource in the map of the resources in the canvas										frame.modifyResourceId(newId, oldId);									}																		//refreshing the nodes that use the resource									frame.refreshNodesUsingResource(newId);																		//refreshing the resources lists									resourceState.setSelectedItemId(name, newId);									refreshResources(RESOURCE_MODIFIED, name, newElement, oldElement);								}							};												SVGUndoRedoActionList actionlist=new SVGUndoRedoActionList(action.getName());							actionlist.add(action);							getVisualResources().getSVGEditor().getUndoRedo().addActionList(frame, actionlist);						}												frame.setModified(true);												//removing the initial node and adding the modified node						getVisualResources().getVisualResourcesToolkit().removeVisualResource(frame, oldElement);						getVisualResources().getVisualResourcesToolkit().appendVisualResource(frame, parentElement, newElement);												if(! newId.equals(oldId)){						    							//modifying the id of the resource in the map of the resources in the canvas							frame.modifyResourceId(newId, oldId);						}												//refreshing the nodes that use the resource						frame.refreshNodesUsingResource(newId);												//refreshing the resources lists						resourceState.setSelectedItemId(name, newId);						refreshResources(RESOURCE_MODIFIED, name, newElement, oldElement);					    				    }else{				        				        //removes this resource object				        fresourceObject.getResourceModel().getResourceObjectsList().remove(fresourceObject);				        				        refreshResources(RESOURCE_MODIFIED, name, oldElement, fresourceObject.getResourceNode());				    }				}        	});    	}    }        /**     * the list cell renderer     *      * @author Jordi SUC      */    protected class SVGVisualResourcesListCellRenderer implements ListCellRenderer{        /**         * @param list         * @param item         * @param index         * @param isSelected         * @param cellHasFocus         * @return the component representing an item in a list         */        public Component getListCellRendererComponent(JList list, Object item, int index, boolean isSelected, boolean cellHasFocus) {            JPanel panel=new JPanel();            if(item!=null){                                panel.setLayout(new BorderLayout(5, 0));                JComponent resourceComponent=((SVGVisualResourceListItem)item).getResourceRepresentation();                SVGVisualResourceObject resObj=((SVGVisualResourceListItem)item).getVisualResourceObject();                panel.add(resourceComponent, BorderLayout.WEST);                                JLabel label=new JLabel(((SVGVisualResourceListItem)item).getVisualResourceObject().getResourceId());                label.setFont(list.getFont());                panel.add(label, BorderLayout.CENTER);                                if(isSelected){                                        if(((SVGVisualResourceListItem)item).getVisualResourceObject().canBeModified()){                                                panel.setBackground(list.getSelectionBackground());                        label.setBackground(list.getSelectionBackground());                        label.setForeground(list.getSelectionForeground());                                            }else{                                                panel.setBackground(MetalLookAndFeel.getPrimaryControlDarkShadow());                        label.setBackground(MetalLookAndFeel.getPrimaryControlDarkShadow());                        label.setForeground(list.getSelectionForeground());                    }                }else{                                        if(((SVGVisualResourceListItem)item).getVisualResourceObject().canBeModified()){                                                panel.setBackground(list.getBackground());                        label.setBackground(list.getBackground());                        label.setForeground(list.getForeground());                                            }else{                                                panel.setBackground(MetalLookAndFeel.getPrimaryControlShadow());                        label.setBackground(MetalLookAndFeel.getPrimaryControlShadow());                        label.setForeground(list.getForeground());                    }                }                                //adds the cell panel to the list of the cell panels                if(panel!=null){                	                	cellPanels.put(resObj, panel);                }            }            return panel;        }    }}

⌨️ 快捷键说明

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