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

📄 libpanel.java

📁 用Java开发的、实现类似Visio功能的应用程序源码
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
                		//do combo changing here.
                		return;
                	}
                	
			AbstractLibrary lib;
			if (m_type==TYPE_LIBRARY)
				lib	=new JFLibrary();
			else
				lib	=new JFTemplate();
			
			lib.loadFromBinary(fileName,m_canvas);  
			lib.setFilename(fileName);
			m_libList.add(lib);
			m_combo.addItem(lib.getTitle());
			setCurrLibIndex(m_libList.size()-1);
                        resizeComponents();
    		} catch(Exception e) {
    			m_logger.error("loadLibrary: "+e);
    		} 		
	}
       

    	/** create a new binary library file and open it.
    	 */
    	public  void newLibrary(){
    		int i=m_libList.size()+1;
    		String title="";
    		if (m_type==TYPE_LIBRARY)
    			title	=CADResource.getString("label.library.library")+'-'+i;
    		else
    			title	=CADResource.getString("label.library.template")+'-'+i;
    		String newTitle=LabelDialog.getNewLabel(this,title);
    		if (newTitle!=null && newTitle.length()>0)
    			title	=newTitle;
    		
    		String fileName	= FileAction.getOutputFileName(this,m_fileExt,m_fileDesc);
    		if (fileName==null || fileName.length()==0)
    			return;
		
		AbstractLibrary lib;
        	if (m_type==TYPE_LIBRARY)
        		lib	=new JFLibrary();
        	else                     
        		lib	=new JFTemplate();

    		lib.saveToBinary(fileName);
    		lib.setFilename(fileName);
    		lib.setTitle(title);  
    		
    		m_libList.add(lib);
    		m_combo.addItem(title);
    		setCurrLibIndex(m_libList.size()-1);
	}

    	/** modify properties of current libary.
    	 */
    	private  void modifyLibrary(){
    		int index	=m_currLibIndex;
    		if (index<0)
    			return;

    		try{ 
    			
    			AbstractLibrary lib	=(AbstractLibrary)m_libList.get(index);
    			String title  =lib.getTitle();
    			String newTitle=LabelDialog.getNewLabel(this,title);
    			if (newTitle!=null && newTitle.length()>0 && !title.equals(newTitle)){
    				lib.setTitle(newTitle);
    				lib.setModified(true);

				m_preventComboChanging=true;
    				showComboItems();
    				setCurrLibIndex(index);
    			}

    		}catch(Exception e){
    		}
		m_preventComboChanging=false;
    	}

    	
    	/** save all libraries opened to binary library files.
    	 */
    	public  void saveLibrary(){
    		Iterator it	=m_libList.iterator();
    		while (it!=null && it.hasNext()){
    			AbstractLibrary lib	=(AbstractLibrary)it.next();
    			if (lib.isModified()){
    				lib.saveToBinary(lib.getFilename());
    			}
    		}
    	}

    	/** Remove current library from list.
    	 *  Attention: this operation will not actually remove the binary library file in your file system.
    	 */
    	private  void removeLibrary(){
    		int index	=m_combo.getSelectedIndex();
    		if (index>=0){

		  	int n = JOptionPane.showConfirmDialog(
                                   null,
                                   CADResource.getString("dialog.library.remove"),
                                   CADResource.getString("sys.warn"),
                                   JOptionPane.YES_NO_OPTION);
                                   
				if (n==JOptionPane.YES_OPTION){
					try{
    						m_combo.removeItemAt(index);
    						m_libList.remove(index);

						index--;
						if (index<0)
							index	=0;
						if (m_libList.size()==0)
							index	=-1;
						setCurrLibIndex(index);
    					}catch(Exception e){
    					}
    				}
    		}
    	}


        //insert current picked library into drawing canvas
	public void insertCurrLibInto(){  

		//get current picked library from lib canvas.
		JFLibElem libElem	=m_canvas.getLastPickedElement();
		if (libElem==null)
			return;
		
        	if (m_type==TYPE_LIBRARY){
			//get current drawing canvas in CAD Pane.
			DrawCanvas drawCanvas	=m_pane.getDrawCanvas();
			if (drawCanvas==null)
				return;
		
			//view center of drawing canvas
			JFPoint center	=drawCanvas.getViewCenter();
		
			//new object id.
			JFPage page		=drawCanvas.getDrawPage();
			ObjectList objList	=page.getCurrentLayer().getShapeList();
			int newObjectId		=objList.newObjectId();
			//libElem.setElementId(newObjectId);


			//clone a new library.
			AbstractShape	shape	=null;
			try{
				shape	=(AbstractShape)libElem.getElement().clone();
	
			}catch(Exception e){
			}
	        	if (shape==null)
	        		return;
	        	JFClipboard.finishLoading(shape,newObjectId);
	        	JFImage.finishLoadingImages(shape,m_canvas);
    			
    			if (page.isHidePorts())
    				shape.setShowDesign(false); 
    			else
    				shape.setShowDesign(true);
				
			//adjust poistion of library to be inserted.
			JFPoint shapeCenter	=shape.getBounds().getCenter();
			shape.moveBy(center.getX()-shapeCenter.getX(),center.getY()-shapeCenter.getY());
			shape.setZoomScale(page.getZoomScale());
		
			//add to object list of drawing canvas.
			try{
    				//register a new operations to operation manager.
    				drawCanvas.getOperationManager().addNew(shape,null,null);
				objList.add(shape); 
				page.setModified(true);
				drawCanvas.getSelection().clear();
				drawCanvas.getSelection().getList().add(shape);
				drawCanvas.repaint();		
			}catch(Exception e){
			}
		
	}else{ 
			//clone a new page from element.
			JFPage page	=null;
			try{
				page	=(JFPage)libElem.getElement().clone();
	                        if (page!=null){
	                        	JFClipboard.finishLoading(page,1);
	                        }
			}catch(Exception e){
			}
		        if (page==null)
		        	return;
		        	

			FileAction  action	=new FileAction(m_pane);
			action.newFile();
			
			//get current drawing canvas in DrawAdapter
			DrawCanvas drawCanvas	=m_pane.getDrawCanvas();
			if (drawCanvas==null)
				return;
		        
			//set draw page.
			page.setModified(true);
			drawCanvas.setDrawPage(page);
			drawCanvas.repaint();
		}
		
	}


        //remove current picked library from list.
	private void removeCurrLib(){  
		JFLibElem  elem	=m_canvas.getLastPickedElement();
		if (elem==null)
			return;

		int n = JOptionPane.showConfirmDialog(
                                   null,
                                   CADResource.getString("dialog.library.curr.remove"),
                                   CADResource.getString("sys.warn"),
                                   JOptionPane.YES_NO_OPTION);
                                   
				if (n==JOptionPane.YES_OPTION){
					AbstractLibrary lib=m_canvas.getLibrary();
					lib.remove(elem); 
					m_canvas.repaint();
                    		}
		
	}


    	/** popup library/template menu for actions.
    	 *  @param e An action event.
    	 */
    	private  void popupLibMenu(ActionEvent e){
		Component   c	  =(Component)e.getSource();
		Rectangle   rect  =c.getBounds();
		m_menu.show(c,rect.width,0);
    	}
    	        
    	/**
     	*   add library menus to a menu container.
     	*/	
     	public static void addLibraryMenus(Container c, ActionListener listener){

        	c.add(ToolFactory.createMenuItem(CADResource.getString("menuitem.library.load.label"),
        			   "general/open16",
        			   CADResource.getChar("menuitem.library.load.mnemonic"),
        			   CADResource.getChar("menuitem.library.load.accelerator"),
        			   CADResource.getString("menuitem.library.load.keymask"),
        			   CMD_LIB_LOAD,
        			   listener));

        	c.add(ToolFactory.createMenuItem(CADResource.getString("menuitem.library.loadurl.label"),
        			   "general/open16",
        			   CADResource.getChar("menuitem.library.loadurl.mnemonic"),
        			   CADResource.getChar("menuitem.library.loadurl.accelerator"),
        			   CADResource.getString("menuitem.library.loadurl.keymask"),
        			   CMD_LIB_LOADURL,
        			   listener));


        	c.add(ToolFactory.createMenuItem(CADResource.getString("menuitem.library.save.label"),
        			   "general/save16",
        			   CADResource.getChar("menuitem.library.save.mnemonic"),
        			   CADResource.getChar("menuitem.library.save.accelerator"),
        			   CADResource.getString("menuitem.library.save.keymask"),
        			   CMD_LIB_SAVE,
        			   listener));

        	c.add(ToolFactory.createMenuItem(CADResource.getString("menuitem.library.new.label"),
        			   "general/new16",
        			   CADResource.getChar("menuitem.library.new.mnemonic"),
        			   CADResource.getChar("menuitem.library.new.accelerator"),
        			   CADResource.getString("menuitem.library.new.keymask"),
        			   CMD_LIB_NEW,
        			   listener));


        	c.add(ToolFactory.createMenuItem(CADResource.getString("menuitem.library.modify.label"),
        			   "general/edit16",
        			   CADResource.getChar("menuitem.library.modify.mnemonic"),
        			   CADResource.getChar("menuitem.library.modify.accelerator"),
        			   CADResource.getString("menuitem.library.modify.keymask"),
        			   CMD_LIB_MODIFY,
        			   listener));

        	c.add(ToolFactory.createMenuItem(CADResource.getString("menuitem.library.remove.label"),
        			   "general/delete16",
        			   CADResource.getChar("menuitem.library.remove.mnemonic"),
        			   CADResource.getChar("menuitem.library.remove.accelerator"),
        			   CADResource.getString("menuitem.library.remove.keymask"),
        			   CMD_LIB_REMOVE,
        			   listener));
     }


    	/**
     	*   add template menus to a menu container.
     	*/	
     	public static void addTemplateMenus(Container c, ActionListener listener){

        	c.add(ToolFactory.createMenuItem(CADResource.getString("menuitem.template.load.label"),
        			   "general/open16",
        			   CADResource.getChar("menuitem.template.load.mnemonic"),
        			   CADResource.getChar("menuitem.template.load.accelerator"),
        			   CADResource.getString("menuitem.template.load.keymask"),
        			   CMD_LIB_LOAD,
        			   listener));

        	c.add(ToolFactory.createMenuItem(CADResource.getString("menuitem.template.loadurl.label"),
        			   "general/open16",
        			   CADResource.getChar("menuitem.template.loadurl.mnemonic"),
        			   CADResource.getChar("menuitem.template.loadurl.accelerator"),
        			   CADResource.getString("menuitem.template.loadurl.keymask"),
        			   CMD_LIB_LOADURL,
        			   listener));
        			   
        	c.add(ToolFactory.createMenuItem(CADResource.getString("menuitem.template.save.label"),
        			   "general/save16",
        			   CADResource.getChar("menuitem.template.save.mnemonic"),
        			   CADResource.getChar("menuitem.template.save.accelerator"),
        			   CADResource.getString("menuitem.template.save.keymask"),
        			   CMD_LIB_SAVE,
        			   listener));

        	c.add(ToolFactory.createMenuItem(CADResource.getString("menuitem.template.new.label"),
        			   "general/new16",
        			   CADResource.getChar("menuitem.template.new.mnemonic"),
        			   CADResource.getChar("menuitem.template.new.accelerator"),
        			   CADResource.getString("menuitem.template.new.keymask"),
        			   CMD_LIB_NEW,
        			   listener));

        	c.add(ToolFactory.createMenuItem(CADResource.getString("menuitem.template.modify.label"),
        			   "general/edit16",
        			   CADResource.getChar("menuitem.template.modify.mnemonic"),
        			   CADResource.getChar("menuitem.template.modify.accelerator"),
        			   CADResource.getString("menuitem.template.modify.keymask"),
        			   CMD_LIB_MODIFY,
        			   listener));


        	c.add(ToolFactory.createMenuItem(CADResource.getString("menuitem.template.remove.label"),
        			   "general/delete16",
        			   CADResource.getChar("menuitem.template.remove.mnemonic"),
        			   CADResource.getChar("menuitem.template.remove.accelerator"),
        			   CADResource.getString("menuitem.template.remove.keymask"),
        			   CMD_LIB_REMOVE,
        			   listener));
     }


    /**
     *   an current library operation menus.
     */	
    public static void addCurrLibraryMenus(Container c, ActionListener listener){

        	c.add(ToolFactory.createMenuItem(CADResource.getString("menuitem.library.current.insertinto.label"),
        			   "general/add16",
        			   CADResource.getChar("menuitem.library.current.insertinto.mnemonic"),
        			   CADResource.getChar("menuitem.library.current.insertinto.accelerator"),
        			   CADResource.getString("menuitem.library.current.insertinto.keymask"),
        			   CMD_LIB_CURR_INSERTINTO,
        			   listener));

        	c.add(ToolFactory.createMenuItem(CADResource.getString("menuitem.library.current.remove.label"),
        			   "general/delete16",
        			   CADResource.getChar("menuitem.library.current.remove.mnemonic"),
        			   CADResource.getChar("menuitem.library.current.remove.accelerator"),
        			   CADResource.getString("menuitem.library.current.remove.keymask"),
        			   CMD_LIB_CURR_REMOVE,
        			   listener));

    }


    /**
     *   an current template operation menus.
     */	
    public static void addCurrTemplateMenus(Container c, ActionListener listener){

        	c.add(ToolFactory.createMenuItem(CADResource.getString("menuitem.template.current.insertinto.label"),
        			   "general/add16",
        			   CADResource.getChar("menuitem.template.current.insertinto.mnemonic"),
        			   CADResource.getChar("menuitem.template.current.insertinto.accelerator"),
        			   CADResource.getString("menuitem.template.current.insertinto.keymask"),
        			   CMD_LIB_CURR_INSERTINTO,
        			   listener));

        	c.add(ToolFactory.createMenuItem(CADResource.getString("menuitem.template.current.remove.label"),
        			   "general/delete16",
        			   CADResource.getChar("menuitem.template.current.remove.mnemonic"),
        			   CADResource.getChar("menuitem.template.current.remove.accelerator"),
        			   CADResource.getString("menuitem.template.current.remove.keymask"),
        			   CMD_LIB_CURR_REMOVE,
        			   listener));

    }


    public void componentHidden(ComponentEvent e) {
    }

    public void componentMoved(ComponentEvent e) {
    }

    public void componentResized(ComponentEvent e) {
    	resizeComponents();
    }

    public void componentShown(ComponentEvent e) {
    	resizeComponents();
    }

    public void itemStateChanged(ItemEvent e){ 
		comboItemChanged();
    } 


}

⌨️ 快捷键说明

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