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

📄 casediagrampanel.java

📁 一个数据挖掘软件ALPHAMINERR的整个过程的JAVA版源代码
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
					m_ScrollPaneDiagram.getViewport().getAlignmentX();
					m_ScrollPaneDiagram.getViewport().getAlignmentY();
					m_ScrollPaneDiagram.getViewport().getLocation();
					m_ScrollPaneDiagram.getViewport().getLocationOnScreen();
					m_ScrollPaneDiagram.getViewport().getView();
					m_ScrollPaneDiagram.getViewport().getViewPosition();
					m_ScrollPaneDiagram.getViewport().getViewSize();
					m_ScrollPaneDiagram.getViewport().getViewRect();
					m_ScrollPaneDiagram.getViewport().getVisibleRect();	
//					16/06/2005 Mark Li: Modified for multi-selection>>
					// Roll the panel to visible the operator
					Rectangle rect = m_ScrollPaneDiagram.getViewport().getViewRect();
					
					//					<<16/06/2005 Mark Li: Modified for multi-selection
//					if (!rect.contains(getActiveComponent().getBounds())) {				
//					    m_PanelDiagramDrawing.scrollRectToVisible(getActiveComponent().getBounds());
					    if (!rect.contains(getActiveComponentBorder())) {
						    m_PanelDiagramDrawing.scrollRectToVisible(getActiveComponentBorder());
//					      16/06/2005 Mark Li: Modified for multi-selection>>
					    m_PanelDiagramDrawing.revalidate();
					    m_ScrollPaneDiagram.getViewport().getAlignmentX();
						m_ScrollPaneDiagram.getViewport().getAlignmentY();
						m_ScrollPaneDiagram.getViewport().getLocation();
						m_ScrollPaneDiagram.getViewport().getLocationOnScreen();
						m_ScrollPaneDiagram.getViewport().getView();
						m_ScrollPaneDiagram.getViewport().getViewPosition();
						m_ScrollPaneDiagram.getViewport().getViewSize();
						m_ScrollPaneDiagram.getViewport().getViewRect();
						m_ScrollPaneDiagram.getViewport().getVisibleRect();	
					}				    
//					if (!rect.contains(getActiveComponent().getBounds())) {
////						m_PanelDiagramDrawing.setSize(new Dimension(0, 0));
////						m_PanelDiagramDrawing.setPreferredSize(new Dimension(0, 0));
////						m_ScrollPaneDiagram.getViewport().scrollRectToVisible(
////							getActiveComponent().getBounds());
//						m_PanelDiagramDrawing.setPreferredSize(getDimension());
//						m_PanelDiagramDrawing.setSize(getDimension());
//						m_ScrollPaneDiagram.getViewport().scrollRectToVisible(
//							getActiveComponent().getBounds());
//					}
				}

//				<<16/06/2005 Mark Li: Modified for multi-selection
				repaint();
				m_PanelDiagramDrawing.repaint();					
				getCaseWindow().setModified(true);
//				16/06/2005 Mark Li: Modified for multi-selection>>
			}
	    }
	}

	/**
	 * @see java.awt.event.MouseMotionListener#mouseMoved(MouseEvent)
	 */
	public void mouseMoved(MouseEvent e) {
		Component[] comp = m_PanelDiagramDrawing.getComponents();
		Operator operator = null;
		// <<27/07/2005 Kenneth Lai: Add for JHelp
		HelpCursor helpCursor = new HelpCursor();
		
	    if ( isHelpMode() ) {
	        setCursor(helpCursor.getCursor());
	    }
		else {
	        setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
			// 27/07/2005 Kenneth Lai: Add for JHelp>>
			if (m_CaseInformationLayer.isVisible())
				return;
	
			for (int i = 0; comp != null && i < comp.length; i++) {
				if (comp[i] instanceof Operator) {
					operator = (Operator) comp[i];
					if (operator.getBounds().contains(e.getX(), e.getY())) {
						if (operator
							.getOperatorImage()
							.getBounds()
							.contains(
								e.getX() - operator.getX(),
								e.getY() - operator.getY())) {
							setCursor(
								Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
							break;
						} else if (
							operator.getModePanel().getBounds().contains(
								e.getX() - operator.getX(),
								e.getY() - operator.getY())) {
							setCursor(
								Cursor.getPredefinedCursor(
									Cursor.CROSSHAIR_CURSOR));
							break;
						} else
							setCursor(Cursor.getDefaultCursor());
					} else
						setCursor(Cursor.getDefaultCursor());
				}
			}
			
		}
	}

	/**
	 * @see java.awt.KeyEventDispatcher#dispatchKeyEvent(KeyEvent)
	 */
	public boolean dispatchKeyEvent(KeyEvent e) {
		
		if (!this.isFocusOwner())
			return false;
					
		if (e.getID() == KeyEvent.KEY_PRESSED
			&& getCaseWindow().isSelected()) {
			if (getActiveComponent() != null
				&& e.getKeyCode() == KeyEvent.VK_DELETE
				&& !m_CaseInformationLayer.isVisible()) {
//			  <<16/06/2005 Mark Li: Modified for multi-selection
//				if (getActiveComponent() instanceof ArrowComponent)
			    if(getActiveComponent() != null){
					deleteArrow();
//				else {
					deleteOperator();
					setCursor(Cursor.getDefaultCursor());
//				  <<08/07/2005 Kenneth Lai: Disabled to eliminate screen splash problem
				    //m_PanelDiagramDrawing.setPreferredSize(getDimension());
					//m_PanelDiagramDrawing.setSize(getDimension());
//					08/07/2005 Kenneth Lai: Disabled to eliminate screen splash problem>>
					m_PanelDiagramDrawing.repaint();
					setActiveComponent(null);
					getCaseWindow().setModified(true);
//				}
				return true;
			    }
				//16/06/2005 Mark Li: Modified for multi-selection>>
			}
			else if(e.getKeyCode() == KeyEvent.VK_F5) {
				//refresh window
				m_CurrentPanel.refreshCaseDiagram();
				m_CurrentPanel.getCaseWindow().setModified(true);
			}
			return false;
		}
		return false;
	}

	//<<16/06/2005 Mark Li: Add for components multi-selection
	/**
	 * Sets given Components as active components.
	 * This is similar as setActiveComponent(Jcomponent comp),
	 * but use different parameter
	 * @param compArray: the Componenets to be set
	 */
	public void setActiveComponents(Vector<JComponent> compArray){
	    m_ActiveComponent = new JComponent[compArray.size()];
	    
	    for (int i = 0; i < compArray.size(); i++) {
            
            m_ActiveComponent[i] = compArray.get(i);
            if (m_ActiveComponent[i] instanceof ArrowComponent)
                ((ArrowComponent) m_ActiveComponent[i]).setSelect();
            else if (m_ActiveComponent[i] instanceof Operator) {
                String id = ((Operator) m_ActiveComponent[i]).getNodeID();
                String des = null;
                try {
                    des = (String) ((OperatorNode) CaseHandler.getInstance().getCase(
                            getCaseID(), false).getNode(NodeFactory.OPERATOR,
                            id)).getParameterValue("Tips");
                    
                    String[] superscript = new String[2];
                    superscript[0] = Resource.srcStr("print_caseName")+": "+ m_Parent.getCaseName();
                    superscript[1] = Resource.srcStr("print_operatorName")+": "+ ((Operator)m_ActiveComponent[i]).getLabel();
                    if (des == null) {
                        ((CaseWindow) getCaseWindow()).getDescriptionPanel()
                                .setDescription("",superscript);
                    } else if (des != null)
                        ((CaseWindow) getCaseWindow()).getDescriptionPanel()
                                .setDescription(des,superscript);
                } catch (BaseException be) {
//                    System.out.println("error in setting description");
                }

                ((Operator) m_ActiveComponent[i]).setSelectMode();
            }
        }
	    setActiveComponentBorder();
	    isFirstMutiSelect = true;
	}
	
	/**
	 * Get the Width for the Active Component(s), 
	 * The size of the Active component(s) Width is the number of Active Component(s)
	 * @return the Width of Active Component(s)
	 */
	public int getActiveComponentWidth(){
	    int width;
	    
	    Rectangle recActiveComponent = getActiveComponentBorder();
	    
	    if(recActiveComponent == null)
	        return 0;
	    
	    width = (int)recActiveComponent.getWidth();
	    
	    return width;
	}
	
	/**
	 * Get the Height for the Active Component(s), 
	 * The size of the Active component(s) Height is the number of Active Component(s)
	 * @return the Height of Active Component(s)
	 */
	public int getActiveComponentHeight(){
	    
	    int height;
	    
	    Rectangle recActiveComponent = getActiveComponentBorder();
	    
	    if(recActiveComponent == null)
	        return 0;
	    
	    height = (int)recActiveComponent.getHeight();
	        
	    return height;
	}
	
	public void updateActiveComponentsBorderLocation(int updatedX,int updatedY){
//	    System.out.println("\nm_recActiveComponent.setLocation(updatedX-->"+updatedX+",updatedY-->"+updatedY+");");
	    if(m_recActiveComponent == null) return;
	    m_recActiveComponent.setLocation(updatedX,updatedY);
	}
		
	public int getDragMovementDistanceX(){
	    int minActiveComponentX;
	    
	    if (m_ActiveComponent == null){
	        System.err.println("m_ActiveComponent == null");
	        return 0;
	    }
	        
	    
	    minActiveComponentX = m_ActiveComponent[0].getX();
	    
	    for(int i = 1; i< m_ActiveComponent.length; i++){
	        if(minActiveComponentX > m_ActiveComponent[i].getLocation().x)
	            minActiveComponentX = m_ActiveComponent[i].getLocation().x;
	    }
	    return (getActiveComponentBorder().getLocation().x - minActiveComponentX);//-Operator.ICON_WIDTH);
	}
	
	public int getDragMovementDistanceY(){
	    int minActiveComponentY;
	    
	    if (m_ActiveComponent == null)
	        return 0;
	    
	    minActiveComponentY = m_ActiveComponent[0].getY();
	    for(int i = 1; i< m_ActiveComponent.length; i++){
	        if(minActiveComponentY > m_ActiveComponent[i].getLocation().y){
	            minActiveComponentY = m_ActiveComponent[i].getLocation().y;
	        }
	    }
	    int temp = getActiveComponentBorder().getLocation().y - minActiveComponentY;
	    return temp;
	}
	
	@SuppressWarnings("unchecked")
	public void setActiveComponentBorder(){	    
	    int RectangleMinX = 0;
	    int RectangleMinY = 0;
	    int RectangleMaxX = 0;
	    int RectangleMaxY = 0;
	    int DefaultRectangleHeight = Operator.ICON_HEIGHT;//  55;
	    int DefaultRectangleWidth = Operator.ICON_WIDTH;//44;
	    int i;
	    m_recActiveComponent = null;
	    
	    if(m_ActiveComponent == null)
	        return;
	    
	    for( i = 0; i < m_ActiveComponent.length; i++){	        
	        if( i == 0){	            
	            RectangleMinX = (int) m_ActiveComponent[i].getX();// + DefaultRectangleWidth;
	            RectangleMinY = (int) m_ActiveComponent[i].getY();
	            RectangleMaxX = (int) m_ActiveComponent[i].getX();
	            RectangleMaxY = (int) m_ActiveComponent[i].getY();	            
	            continue;
	        }
	        
	        if(RectangleMinX > (int) m_ActiveComponent[i].getX())
	            RectangleMinX = (int) m_ActiveComponent[i].getX();// + DefaultRectangleWidth;
	        
	        if(RectangleMaxX < (int) m_ActiveComponent[i].getX())
	            RectangleMaxX = (int) m_ActiveComponent[i].getX();
	        
	        
	        if(RectangleMinY > (int) m_ActiveComponent[i].getY())
	            RectangleMinY = (int) m_ActiveComponent[i].getY();	            
	        if(RectangleMaxY < (int) m_ActiveComponent[i].getY())
	            RectangleMaxY = (int) m_ActiveComponent[i].getY();
	        	            
	    }
	    
	    DefaultRectangleWidth = RectangleMaxX - RectangleMinX + DefaultRectangleWidth;//*2;
	    DefaultRectangleHeight = RectangleMaxY - RectangleMinY + DefaultRectangleHeight;
	    
	    m_recActiveComponent = new Rectangle(RectangleMinX,RectangleMinY,
	            DefaultRectangleWidth,DefaultRectangleHeight);
	    
	    //Set m_ArrowInActiveComponents
	    Component[] comp = m_PanelDiagramDrawing.getComponents();
		ArrowComponent arrow = null;
		m_ArrowInActiveComponents.removeAllElements();
		m_ArrowInActiveComponents.setSize(comp.length);
		for (i = 0; comp != null && i < comp.length; i++) {
			if (comp[i] instanceof ArrowComponent) {
				arrow = (ArrowComponent) comp[i];
				JComponent from = arrow.getParentNode();
				JComponent to = arrow.getChildNode();
				for(int j = 0 ; j< m_ActiveComponent.length; j++)
				{
				    if(from.equals(m_ActiveComponent[j]) || to.equals(m_ActiveComponent[j]))
				        m_ArrowInActiveComponents.insertElementAt(arrow,i);    
				}
//				System.out.println("m_recActiveComponent.toString()"+m_recActiveComponent.toString());
//				System.out.println("arrow.getChildNode().getLocation()"+arrow.getChildNode().getLocation());
//				System.out.println("arrow.getParent().getLocation()"+arrow.getParent().getLocation());
//				if (//m_recActiveComponent.contains(arrow.getParent().getLocation())
//				        !m_ArrowInActiveComponents.contains(arrow)
//				         &&m_recActiveComponent.contains(arrow.getChildNode().getLocation())) {
				    				    
//				}
			}
		}
	}
	/**
	 * Get the Border for the Active Component(s), 
	 * The size of the Active component(s) Border is the number of Active Component(s)
	 * @return the Border of Active Component(s)
	 */
	public Rectangle getActiveComponentBorder(){
	    return m_recActiveComponent;
	}
	
	//16/06/2005 Mark Li: Add for components multi-selection>>

	
	/**
	 * Sets a given Component as an active component.
	 * That is the same as selecting the given Component.
	 * @param comp the Component to be set.
	 */
	public void setActiveComponent(JComponent comp) {

//		((CaseWindow)getCaseWindow()).getDescriptionPanel().clearDescription();
		
	    /*
		if (m_ActiveComponent instanceof ArrowComponent)
			 ((ArrowComponent) m_ActiveComponent).clearSelect();
		else if (m_ActiveCompo

⌨️ 快捷键说明

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