亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? drawpane.java

?? 用Java開發的、實現類似Visio功能的應用程序源碼
?? JAVA
字號:
/**
 *    $Id:DrawPane.java $
 *
 *    Copyright 2004 ~ 2005  JingFei International Cooperation LTD. All rights reserved. *
 */
package com.jfimagine.jfdraw.gui;

import javax.swing.JComponent;
import javax.swing.JPanel;
import javax.swing.JSplitPane;
import javax.swing.BoxLayout;
import javax.swing.JScrollPane;
import javax.swing.BorderFactory;

import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.Color;
import java.awt.Graphics;

import com.jfimagine.jfdraw.gui.Ruler;
import com.jfimagine.jfdraw.gui.DrawCanvas;
import com.jfimagine.jfdraw.gui.GlobalSettings;


import java.awt.print.PageFormat;
import com.jfimagine.jfgraph.shape.decorate.JFPageFormat;  
import com.jfimagine.jfgraph.shape.decorate.JFRuler;  
import com.jfimagine.jfgraph.shape.decorate.CanvasFormat;

import com.jfimagine.jfgraph.shape.base.ObjectList;
import com.jfimagine.jfgraph.shape.union.JFPage;
import com.jfimagine.jfgraph.shape.union.JFLayer;
import com.jfimagine.jfgraph.transfer.JFFileFilter;

import com.jfimagine.utils.log.*; 


 /**
 * Draw pane class. A main drawing pane with rulers, scrollbars and drawing canvas inside.
 *
 * @author     CookieMaker    
 *
 * @version $Revision: 1.3.0 $
 */  
 public class DrawPane extends DrawAdapter {

   	/**an internal log utility*/
   	private JFLogger m_logger=JFLogManager.getLogger(this.getClass());
   	
   		
	/** Horizontal and vertical rulers.*/
    	protected Ruler m_columnView;
    	protected Ruler m_rowView;
	
	/** Drawing Canvas*/    	
    	protected DrawCanvas   m_drawCanvas;
    	
    	/** parent draw frame */
    	protected DrawFrame    m_parentDrawFrame;

	protected JScrollPane  m_drawScrollPane;

 	
 	/** if hide rulers **/
 	protected boolean     m_hideRulers	=false;
 	
 	/** if hide scrollbars 
 	 *  Since rulers are part of this scroll panes, so hide scroll bars would also hide rulers.
 	 **/
 	protected boolean     m_hideScrollbars	=false;

 	/** A tool factory to notify object select events to ToolBar controls.
 	 * we will not create menus and buttons here by toolFactory.
 	 */
 	private ToolFactory m_toolFactory	=new ToolFactory();
 	
	/** if hide rulers now */	
	public boolean isHideRulers(){
		return m_hideRulers;
	}
	/** set if hide rulers */
	public void setHideRulers(boolean hideRulers){
		if (hideRulers!=m_hideRulers){
			if (hideRulers){
        			m_drawScrollPane.setColumnHeaderView(null);
        			m_drawScrollPane.setRowHeaderView(null);
        		}else{
        			m_drawScrollPane.setColumnHeaderView(m_columnView);
        			m_drawScrollPane.setRowHeaderView(m_rowView);
        		}
			m_hideRulers	=hideRulers;	
			validate();
		}
	}
	
	/** if hide scrollbars now */	
	public boolean isHideScrollbars(){
		return m_hideScrollbars;
	}
	/** set if hide scrollbars */
	public void setHideScrollbars(boolean hideScrollbars){
		if (hideScrollbars!=m_hideScrollbars){
			if (hideScrollbars){
				remove(m_drawScrollPane);  
				add(m_drawCanvas);
        		}else{
        			remove(m_drawCanvas);
        			add(m_drawScrollPane);
        		}
			m_hideScrollbars	=hideScrollbars;	
			validate();
		}
	}

    	/** if hide grids now */	
    	public boolean isHideGrids(){
		return m_drawCanvas.isHideGrids();
    	}
    	/** set if hide grids */
    	public void setHideGrids(boolean hideGrids){
    		m_drawCanvas.setHideGrids(hideGrids);
    	}

    	/** if hide popupmenus  now */	
    	public boolean isHidePopupMenus(){
		return m_drawCanvas.isHidePopupMenus();
    	}
    	/** set if hide popupmenus */
    	public void setHidePopupMenus(boolean hidePopupMenus){
    		m_drawCanvas.setHidePopupMenus(hidePopupMenus);
    	}

    	/** if use page bounds to restrict drawing */	
    	public boolean isUsePageBounds(){
		return m_drawCanvas.isUsePageBounds();
    	}
    	/** set if use page bounds to restrict drawing */
    	public void setUsePageBounds(boolean usePageBounds){
    		m_drawCanvas.setUsePageBounds(usePageBounds);
    		setPageFormat(m_drawCanvas.getDrawPage().getPageFormat().getPageFormat());
    	}
    	
	/** Constructor */
    	public DrawPane() { 
        	initComponents();
    	}

	/** Constructor 
	 * @param initIt True if initiate components, false otherwise.
	 *               If you use false here to avoid initiating components when constructing,
	 *               you need to call initComponents immediately.
	 */
    	public DrawPane(boolean initIt) { 
    		if (initIt)
    			initComponents();
	}

	/**
	 *  Init all gui components of this DrawPane.
	 */        
        public void initComponents(){
		//get a global settings instance:(this get operation will make some initialization)
            	GlobalSettings settings	=GlobalSettings.getInstance();

        	setLayout(new BoxLayout(this, BoxLayout.X_AXIS));


        	//set up the column views,i.e. rulers.
        	m_columnView = new Ruler(JFRuler.HORIZONTAL, true);
        	m_rowView = new Ruler(JFRuler.VERTICAL, true);
		
		//default canvas format.
		CanvasFormat canvasFormat	=CanvasFormat.getDefaultCanvasFormat();
		canvasFormat.setIsMetric(settings.isMetric());
		Dimension d	=new Dimension((int)canvasFormat.getScreenWidth(),(int)canvasFormat.getScreenHeight());
		
            	m_columnView.setPreferredWidth((int)d.getWidth());
            	m_rowView.setPreferredHeight((int)d.getHeight());
            	
        	//Set up the main draw canvas 
        	m_drawCanvas  = newDrawCanvas();
        	m_drawCanvas.setOriginalSize(d);
        	m_drawCanvas.setParentDrawPane(this);
		
		//reset draw page parameters on rulers.
		m_columnView.setDrawPage(m_drawCanvas.getDrawPage());
		m_rowView.setDrawPage(m_drawCanvas.getDrawPage());        	
		
            	m_columnView.setIsMetric(settings.isMetric());
            	m_rowView.setIsMetric(settings.isMetric());
        	m_drawCanvas.setIsMetric(settings.isMetric());
        	
        	//set up the scroll pane.
        	m_drawScrollPane = new JScrollPane(m_drawCanvas);
        	m_drawScrollPane.setPreferredSize(d);
        	m_drawScrollPane.setViewportBorder(
                	BorderFactory.createLineBorder(Color.black));

        	m_drawScrollPane.setColumnHeaderView(m_columnView);
        	m_drawScrollPane.setRowHeaderView(m_rowView);

		//Set the corners.
        	//In theory, to support internationalization you would change
        	//UPPER_LEFT_CORNER to UPPER_LEADING_CORNER,
        	//LOWER_LEFT_CORNER to LOWER_LEADING_CORNER, and
        	//UPPER_RIGHT_CORNER to UPPER_TRAILING_CORNER.  In practice,
        	//bug #4467063 makes that impossible (in 1.4, at least).
        	m_drawScrollPane.setCorner(JScrollPane.UPPER_LEFT_CORNER,
                                    new Corner());
        	m_drawScrollPane.setCorner(JScrollPane.LOWER_LEFT_CORNER,
                                    new Corner());
        	m_drawScrollPane.setCorner(JScrollPane.UPPER_RIGHT_CORNER,
                                    new Corner());

        	//Put it in this panel.
        	add(m_drawScrollPane);
        	
        	validate();
        	
        	//setBorder(BorderFactory.createEmptyBorder(20,20,20,20));
        	
        	m_drawCanvas.requestFocus();
    	} 	
        
        /**
         *  to create a new instance of DrawCanvas class
         *  @return A new DrawCanvas object.
         */
        protected DrawCanvas newDrawCanvas(){
        	return new DrawCanvas(this,m_columnView.getIncrementDouble());
	}


	private class Corner extends JComponent {
    		protected void paintComponent(Graphics g) {
        	
        	// Fill me with light gray.
		g.setColor(getBackground());
        	g.fillRect(0, 0, getWidth(), getHeight());
    		}
	}

    	
	/** get current Drawing Canvas
	 * @return Current drawing canvas.
	 */    	
	public DrawCanvas  getDrawCanvas(){
		return  m_drawCanvas;
	}
        
        /**
         *  get current scroll pane. 
         */
	public JScrollPane  getScrollPane(){
		return m_drawScrollPane;
	}

    	/** set zoom scale
     	*  @param zoomScale A new zoom scale.
     	*/	
    	public void setZoomScale(double zoomScale){
    		m_columnView.setZoomScale(zoomScale);
    		m_rowView.setZoomScale(zoomScale);
    	}

    	/** set ruler as metric or english measurement.
     	*  @param isMetric True if is metric, false english.
     	*/	
    	public void setIsMetric(boolean isMetric){
    		
    		
            	m_columnView.setIsMetric(isMetric);
            	m_rowView.setIsMetric(isMetric);
            	m_drawCanvas.setIsMetric(isMetric);  
            	
            	//set current canvas format, then adjust all components that related to CanvasFormat.
            	getCanvasFormat().setIsMetric(isMetric);
            	setCanvasFormat(getCanvasFormat());
       }

    	/** get if ruler is a metric one.
     	*  @return True if is metric, false english.
     	*/	
    	public boolean getIsMetric(){ 
    		return m_columnView.isMetric();
    	}

   	/**
    	*   Get page format.
    	* 
    	*   @return  The page format.
    	*
    	*/ 	
   	public JFPageFormat getPageFormat(){
   		return m_drawCanvas.getPageFormat();
   	}    	

   	/**
    	*   Set page format.
    	* 
    	*   @param pageFormat A new page format.
    	*
    	*/ 	
   	public void setPageFormat(PageFormat pageFormat){  
   		m_drawCanvas.setPageFormat(pageFormat);
   	}    	

   	/**
    	*   Get canvas format.
    	* 
    	*   @return  The canvas format.
    	*
    	*/ 	
   	public CanvasFormat getCanvasFormat(){
   		return m_drawCanvas.getCanvasFormat();
   	}    	

   	/**
    	*   Set canvas format.
    	* 
    	*   @param canvasFormat A new canvas format.
    	*
    	*/ 	
   	public void setCanvasFormat(CanvasFormat canvasFormat){ 
   		Dimension d	=new Dimension((int)canvasFormat.getScreenWidth(),(int)canvasFormat.getScreenHeight());
   		
   		m_drawCanvas.setCanvasFormat(canvasFormat);
    		if (!m_drawCanvas.isUsePageBounds()){
    			m_drawCanvas.setOriginalSize(getSize());
    			m_drawCanvas.setPreferredSize(getSize());
    			m_drawCanvas.setSize(getSize());
    		}else{	
   			m_drawCanvas.setOriginalSize(d);
   			m_drawCanvas.setPreferredSize(d);
   			m_drawCanvas.setSize(d);
   		}
		m_columnView.setPreferredWidth((int)d.getWidth());
            	m_rowView.setPreferredHeight((int)d.getHeight()); 
   	}

  		

    	/** new file operation.
    	 *  This operation should generate a new drawing page.
    	 */
    	public void newFile(){
    		m_drawCanvas.getDrawPage().newPage();
    		m_drawCanvas.setFileName("");
    		m_drawCanvas.getSelection().clear();
		setLayerName(JFLayer.LAYER_NAME_DEFAULT);    		
    		m_drawCanvas.repaint();
    	}

    	/** open a specified file
    	 * @param fileName A spcified file name
    	 */
    	public boolean openFile(String fileName){ 
    		if (fileName==null || fileName.equals(""))
    			return false; 
    		
    		fileName	=fileName.trim();
    			
    		try{
			JFPage page	=m_drawCanvas.getDrawPage();

			if (fileName.endsWith(JFFileFilter.FILEEXT_DRAW)){
				page.loadFromBinary(fileName,m_drawCanvas);
			}else if (fileName.endsWith(JFFileFilter.FILEEXT_DRAW_XML)){
				page.loadFromXML(fileName,m_drawCanvas);
			}else
				return false;
			
			m_drawCanvas.setFileName(fileName); 
    			m_drawCanvas.getSelection().clear();

                        JFLayer	layer=page.getCurrentLayer();
                        if (layer!=null){
                        	setLayerName(layer.getName());
        		}
	
			setPageFormat(page.getPageFormat().getPageFormat());

						
			return true;
		
		}catch(Exception e){
			m_logger.error("openFile: "+e);
			return false;
		}
    	}


    	/** Save current page to a specified file.
    	 *  @param  fileName A file to be saved into.
    	 */
    	public boolean saveFile(String fileName){    
    		if (fileName==null || fileName.equals(""))
    			return false;
    			
                try{
			JFPage page	=m_drawCanvas.getDrawPage();
			
			if (fileName.endsWith(JFFileFilter.FILEEXT_DRAW)){
				//binary JFDraw file
				if (!page.saveToBinary(fileName))
					return false;
			}else{
				//xml JFDraw file.
				if (!page.saveToXML(fileName))
					return false;
			}
                        
                        //set global path.
    			GlobalSettings m_settings	=GlobalSettings.getInstance();
                        m_settings.setGlobalPath(fileName);
                        
			setFileName(fileName);

			return true;
               
    		} catch(Exception e) {
			m_logger.error("saveFile: "+e);
    		} 
  
  		return false;
    	}


    	/** get the file name of current opened page.
    	 *  @return the file name
    	 */
    	public String getFileName(){
    		return m_drawCanvas.getFileName();
    	}

    	/** set the file name of current opened page.
    	 *  @param  fileName A new file name
    	 */
    	public void setFileName(String fileName){ 
    		m_drawCanvas.setFileName(fileName);
    	}


    	/** Notify object selected, tell to do some changes in the drawing framework.
    	 *  
    	 *  @param  objList A new selected object list.
    	 *
    	 */
    	public void notifyObjectSelected(ObjectList objList) {
    		m_toolFactory.notifyObjectSelected(objList);
    	}
    	            	    	
 }

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产欧美综合在线观看第十页| 1000部国产精品成人观看| 国产午夜精品久久久久久久| 一区二区三区波多野结衣在线观看| 免费在线一区观看| 欧洲另类一二三四区| 亚洲精品在线观| 午夜激情一区二区三区| 成人av资源在线观看| 日韩一区二区麻豆国产| 一区二区三区精品视频| 成人白浆超碰人人人人| 欧美成人video| 日韩va亚洲va欧美va久久| 91丝袜国产在线播放| 亚洲国产精品t66y| 国产自产2019最新不卡| 日韩三级中文字幕| 日韩一区欧美二区| 欧美性感一区二区三区| 玉米视频成人免费看| 色综合一区二区| 中文字幕一区不卡| 成人的网站免费观看| 国产精品伦理一区二区| 国产高清在线精品| 久久久.com| 成人在线视频首页| 国产精品乱人伦中文| 成人国产精品免费观看| 国产精品二三区| fc2成人免费人成在线观看播放| 久久久一区二区| 国产精品一区二区在线播放 | 久久久另类综合| 国内不卡的二区三区中文字幕| 欧美电影免费观看高清完整版在线| 丝袜美腿一区二区三区| 777奇米成人网| 奇米在线7777在线精品| 欧美岛国在线观看| 精品一区二区三区久久| 久久久久久久免费视频了| 国产精品亚洲一区二区三区妖精| 久久亚洲精品国产精品紫薇| 国产风韵犹存在线视精品| 成人免费一区二区三区在线观看| 99久久99久久免费精品蜜臀| 一区二区三区在线视频播放| 欧美日韩国产系列| 久久66热偷产精品| 中文在线免费一区三区高中清不卡| 丰满岳乱妇一区二区三区| 亚洲日本在线a| 91精品国产综合久久久蜜臀粉嫩 | 日韩精品一区二区三区四区| 国内成+人亚洲+欧美+综合在线| 国产欧美精品一区aⅴ影院| 成年人午夜久久久| 日韩精品一卡二卡三卡四卡无卡| 精品区一区二区| 99视频精品免费视频| 五月婷婷综合网| 久久网站热最新地址| 91年精品国产| 奇米精品一区二区三区四区| 欧美极品另类videosde| 欧美三级视频在线| 国产精品亚洲午夜一区二区三区| 亚洲综合色婷婷| www成人在线观看| 色婷婷精品久久二区二区蜜臀av| 奇米色777欧美一区二区| 国产精品视频线看| 欧美一区二区三区免费视频| 东方欧美亚洲色图在线| 天堂va蜜桃一区二区三区| 国产欧美一二三区| 欧美精品日日鲁夜夜添| 成人av在线播放网址| 日韩va欧美va亚洲va久久| 中文字幕一区在线观看| 欧美成人免费网站| 欧美性猛片aaaaaaa做受| 国产成a人无v码亚洲福利| 日日摸夜夜添夜夜添亚洲女人| 国产精品视频观看| 精品久久一区二区| 欧美日韩成人激情| 91传媒视频在线播放| 国产成人精品aa毛片| 久久成人久久爱| 石原莉奈在线亚洲三区| 亚洲少妇最新在线视频| 亚洲国产精品精华液ab| 26uuu色噜噜精品一区二区| 欧美四级电影在线观看| 91蜜桃婷婷狠狠久久综合9色| 久久se这里有精品| 毛片基地黄久久久久久天堂| 洋洋成人永久网站入口| 亚洲欧美中日韩| 国产精品天天摸av网| 精品精品国产高清一毛片一天堂| 欧美日韩一区二区三区在线看 | 国产精品免费观看视频| www成人在线观看| 精品国产一区二区三区忘忧草| 欧美在线免费视屏| 在线中文字幕一区| 精品视频色一区| 欧美色综合天天久久综合精品| 91香蕉视频黄| 一本一道综合狠狠老| 色噜噜夜夜夜综合网| 色偷偷成人一区二区三区91| 日本丰满少妇一区二区三区| 97久久精品人人爽人人爽蜜臀| 不卡视频免费播放| 99精品视频在线播放观看| 成人黄色片在线观看| 972aa.com艺术欧美| 色婷婷综合久久久| 欧洲av在线精品| 欧美乱妇20p| 正在播放一区二区| 日韩精品最新网址| 国产三区在线成人av| 国产精品视频在线看| 亚洲人成网站色在线观看| 亚洲综合免费观看高清在线观看| 亚洲国产一区二区视频| 日韩国产精品大片| 国产综合久久久久久鬼色 | 6080午夜不卡| 欧美大片一区二区| 欧美激情在线免费观看| 亚洲欧美电影院| 日本女人一区二区三区| 国产一区二区美女| 91在线无精精品入口| 欧美猛男超大videosgay| 精品国产乱子伦一区| 1区2区3区欧美| 午夜在线成人av| 国产精品亚洲一区二区三区在线| 99天天综合性| 日韩一区二区三区电影在线观看| 久久精品欧美一区二区三区麻豆 | 欧美精品一区二区三区在线播放 | 久久久影视传媒| 亚洲欧美乱综合| 美女性感视频久久| av午夜一区麻豆| 91精品国产一区二区三区| 欧美国产激情二区三区| 亚洲午夜电影在线| 成人性视频免费网站| 欧美三级三级三级| 国产欧美一二三区| 日本成人中文字幕在线视频 | 国产精品自拍三区| 欧美在线看片a免费观看| 久久精品一级爱片| 日韩高清欧美激情| 成人aaaa免费全部观看| 精品久久久久久久久久久久久久久 | 国产一区二区三区国产| 欧美在线视频你懂得| 中文字幕的久久| 麻豆91精品视频| 精品视频免费在线| 亚洲免费观看视频| 大尺度一区二区| 精品国产一区二区三区不卡| 亚洲午夜久久久久久久久电影院| 成人一区在线看| 国产亚洲午夜高清国产拍精品| 香蕉成人啪国产精品视频综合网| 99久久国产免费看| 国产日韩欧美麻豆| 国产又黄又大久久| 欧美高清一级片在线| 亚洲尤物在线视频观看| 成人av在线影院| 国产欧美一区二区精品性| 久久福利资源站| 日韩欧美一区二区视频| 午夜精品一区在线观看| 色天使久久综合网天天| 中文字幕一区在线观看| 成人黄色777网| 欧美国产一区二区| 成人精品视频一区二区三区| 久久久精品免费网站| 国产成人免费在线观看不卡| 国产午夜精品一区二区 | 97精品视频在线观看自产线路二| 欧美激情资源网| 成人国产亚洲欧美成人综合网|