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

📄 casediagrampanel.java

📁 一个数据挖掘软件ALPHAMINERR的整个过程的JAVA版源代码
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
	  					transparent.setVisible(false);
	  					m_PanelDiagramDrawing.add(transparent);
	  					transparent.setLocation(e.getPoint());
	  					tempArrow =
	  						new ArrowComponent(
	  							(JComponent) operator,
	  							(JComponent) transparent,
	  							true);
	  					m_PanelDiagramDrawing.add(tempArrow);
	  					m_PanelDiagramDrawing.repaint();
	  					break;
	  				}
	  				//}
	  			}
	  		}
	  		
//	  		  <<16/06/2005 Mark Li: Modified for multi-selection
	  	    if(!isHitOperatorFlag){
	  	        setActiveComponent(null);
	  	    }	    
	  	    
	  	    m_PanelDiagramDrawing.repaint();	    
	  	    
//	  	  16/06/2005 Mark Li: Modified for multi-selection>>
	  		
	    }
	}

	/**
	 * @see java.awt.event.MouseListener#mouseReleased(MouseEvent)
	 */
	public void mouseReleased(MouseEvent e) {
//		m_IsDragging = false; //<<16/06/2005 Mark Li: Modified for multi-selection>>
		ArrowComponent arrow = null;
		Component[] comp = null;
		Operator operator = null;
		
		// <<27/07/2005 Kenneth Lai: Add for JHelp
		boolean clickOnNode = false;
		
		if ( isHelpMode() ) {
		    
	        for (int i = 0; comp != null && i < comp.length; i++) {
			    if (comp[i] instanceof Operator) {
					operator = (Operator) comp[i];
					if (operator // click on the operator node
						.getModePanel()
						.getBounds()
						.contains(
							e.getX() - operator.getX(),
							e.getY() - operator.getY())) {
					    clickOnNode = true;
					}
				}
		    }
	        
			if ( !clickOnNode ) {
				setHelpMode(false);
				HelpObserveSubject.sendNotify(false);
			}

		}
		// 27/07/2005 Kenneth Lai: Add for JHelp>>		
		else {
		    
			if (m_CaseInformationLayer.isVisible()){
			    m_IsDragging = false;
				return;
			}

			try {
				if (transparent != null) {
				    m_IsDragging = false;//<<16/06/2005 Mark Li: Modified for multi-selection>>
					comp = m_PanelDiagramDrawing.getComponents();
					for (int i = 0; comp != null && i < comp.length; i++) {
						if (comp[i] instanceof Operator) {
							operator = (Operator) comp[i];
							if (operator == ((Operator) tempArrow.getParentNode()))
								continue;
							if (operator
								.getBounds()
								.contains(e.getX(), e.getY())) {
								if (operator
									.getModePanel()
									.getBounds()
									.contains(
										e.getX() - operator.getX(),
										e.getY() - operator.getY())) {
									if (CaseHandler
										.getInstance()
										.createConnection(
											m_CaseID,
											((Operator) tempArrow.getParentNode())
												.getNodeID(),
														operator.getNodeID())) {
													//System.out.println("success insert connection");
													arrow = new ArrowComponent(tempArrow
															.getParentNode(),
															(JComponent) operator, false);
													m_PanelDiagramDrawing.add(arrow);
													getCaseWindow().setModified(true);
												} else
										//System.out.println("fail");
									break;
								}
							}
						}
					}

					m_PanelDiagramDrawing.remove(tempArrow);
					m_PanelDiagramDrawing.remove(transparent);
					transparent = null;

					m_PanelDiagramDrawing.repaint();
//					<<16/06/2005 Mark Li: Modified for multi-selection
				}else if (m_IsDragging && (m_ActiveComponent != null)) {
				    m_IsDragging = false;
				    int DragMovementDistanceX = getDragMovementDistanceX();
				    int DragMovementDistanceY = getDragMovementDistanceY();   
				    for(int i = 0; i< m_ActiveComponent.length; i++){			        
//				        System.out.println("\nm_ActiveComponent->->"+i);
				        int origX = m_ActiveComponent[i].getLocation().x;
//				        System.out.println("\norigX->"+origX);
				        int origY = m_ActiveComponent[i].getLocation().y;
//				        System.out.println("\norigY->"+origY);
				        if(DragMovementDistanceX !=0 && DragMovementDistanceY != 0)
				        m_ActiveComponent[i].setLocation(origX+DragMovementDistanceX-Operator.ICON_WIDTH,origY+DragMovementDistanceY);
//				        System.out.println("\ngetDragMovementDistanceX()->"+DragMovementDistanceX);
//				        System.out.println("\ngetDragMovementDistanceY()->"+DragMovementDistanceY);
//				        System.out.println("\nNewLocation: x->"+(origX+getDragMovementDistanceX())+",y->"+(origY+getDragMovementDistanceY()));
				    }
				    if(m_ArrowInActiveComponents != null){
				        for(int i = 0; i< m_ArrowInActiveComponents.size();i++){
				            if(m_ArrowInActiveComponents.get(i) != null){
				            arrow = m_ArrowInActiveComponents.get(i);			            
				            int origX = arrow.getLocation().x;
				            int origY = arrow.getLocation().y;
//				            System.out.println("DragMovementDistanceX"+DragMovementDistanceX);
//				            System.out.println("m_ScrollPaneDiagram.getViewport().getWidth()"+m_ScrollPaneDiagram.getViewport().getWidth());
//				            System.out.println("DragMovementDistanceY"+DragMovementDistanceY);
//				            System.out.println("m_ScrollPaneDiagram.getViewport().getHeight()"+m_ScrollPaneDiagram.getViewport().getHeight());
				            if((new BigInteger(DragMovementDistanceX+"")).abs().intValue() > m_ScrollPaneDiagram.getViewport().getWidth() || (new BigInteger(DragMovementDistanceY+"").abs()).intValue() > m_ScrollPaneDiagram.getViewport().getHeight()){
				                m_PanelDiagramDrawing.remove(i);
						        arrow.setLocation(origX+DragMovementDistanceX-Operator.ICON_WIDTH,origY+DragMovementDistanceY);
						        m_PanelDiagramDrawing.add(arrow,i);	
				            }
				            }
				        }
//				        m_ArrowInActiveComponents.removeAllElements();
				    }
				    
				    if(isFirstMutiSelect && m_ActiveComponent.length>1 && !e.isControlDown()){
				        isFirstMutiSelect = false;
				    }
//				    if(m_ActiveComponent.length == 1)
//				        updateActiveComponentsBorderLocation((int)(getActiveComponentBorder().getX()-Operator.ICON_WIDTH), (int)getActiveComponentBorder().getY());
//				    repaint();			    
//				  16/06/2005 Mark Li: Modified for multi-selection>>
				}
				
//				m_Start.setLocation(0, 0);
//				setActiveComponent(null); //<<16/06/2005 Mark Li: Modified for multi-selection>>
				m_PanelDiagramDrawing.repaint();
				repaint();
			} catch (BaseException be) {
				be.printStackTrace();
			}
			
		}
	}

	/**
	 * @see java.awt.event.MouseMotionListener#mouseDragged(MouseEvent)
	 */
	public void mouseDragged(MouseEvent e) {
		// <<27/07/2005 Kenneth Lai: Add for JHelp
	    if ( isHelpMode() ) {
	        // no operation
	    }
		// 27/07/2005 Kenneth Lai: Add for JHelp>>
	    else {	    
			int x, y, width, height;
			//System.err.println("mouseDragged(MouseEvent e):"+e.toString());
			

			if (m_CaseInformationLayer.isVisible())
				return;
			
			m_IsDragging = true;
//			if((e.getWhen()-temRec)<DRAGSPEED){
//			    return;
//			}else{
//			        temRec = e.getWhen();
//			}
			// Dragging the arrow
			
			if (transparent != null) {
				// Make sure the arrow is not going out of the panel boundaries
				x = e.getX();
				y = e.getY();
				width = m_PanelDiagramDrawing.getWidth();
				height = m_PanelDiagramDrawing.getHeight();

				if (x
					< m_CaseInformationButton.getX()
						+ m_CaseInformationButton.getWidth()
					&& y
						<= m_CaseInformationButton.getY()
							+ m_CaseInformationButton.getHeight())
					y =
						m_CaseInformationButton.getY()
							+ m_CaseInformationButton.getHeight();
				if (y
					< m_CaseInformationButton.getY()
						+ m_CaseInformationButton.getHeight()
					&& x
						<= m_CaseInformationButton.getX()
							+ m_CaseInformationButton.getWidth())
					x =
						m_CaseInformationButton.getX()
							+ m_CaseInformationButton.getWidth();

				if (x == e.getX() && x < 0)
					x = 0;
				else if (x == e.getX() && x > width)
					x = width;

				if (y == e.getY() && y < 0)
					y = 0;
				else if (y == e.getY() && y > height)
					y = height;

				transparent.setLocation(x, y);

				// Roll the panel until the arrow is visible
				Rectangle rect = m_ScrollPaneDiagram.getViewport().getViewRect();
				Point pt =
					m_ScrollPaneDiagram.getViewport().toViewCoordinates(
						new Point(x, y));
//				Rectangle tran =
//					new Rectangle((int) pt.getX(), (int) pt.getY(), 1, 1);
				Rectangle tran =
//					new Rectangle((int) pt.getX(), (int) pt.getY(), rect.width, rect.height);
				    new Rectangle((int) pt.getX(), (int) pt.getY(), 1, 1);
				if (!rect.contains(tran)) {
				    m_PanelDiagramDrawing.scrollRectToVisible(tran);
				    m_PanelDiagramDrawing.revalidate();
//					m_PanelDiagramDrawing.setPreferredSize(new Dimension(0, 0));
//					m_PanelDiagramDrawing.setSize(new Dimension(0, 0));
//					m_ScrollPaneDiagram.getViewport().scrollRectToVisible(tran);
//					m_PanelDiagramDrawing.setPreferredSize(
//						new Dimension(width, height));
//					m_PanelDiagramDrawing.setSize(new Dimension(width, height));
//					m_ScrollPaneDiagram.getViewport().scrollRectToVisible(tran);
				    
				}
				m_PanelDiagramDrawing.repaint();
			}
			// Dragging an operator
			else if (m_IsDragging) {
				// Makes sure the operator is not
			    
			    //System.err.println("In drag------>e.getX()->"+e.getX()+",e.getY()->"+e.getY());
			    if (m_ActiveComponent == null) return;
			    if(m_ActiveComponent.length == 1 ||isFirstMutiSelect){
			        x = (int) (e.getX() - m_Start.getX() + Operator.ICON_WIDTH);		    	
			    }
			    else{
			        x = (int) (e.getX() - m_Start.getX());
			    }
				y = (int) (e.getY() - m_Start.getY());
			    
				//System.err.println("In drag------>X->"+x+",Y->"+y);
				
				if (x
					< m_CaseInformationButton.getX()
						+ m_CaseInformationButton.getWidth()
					&& y
						< m_CaseInformationButton.getY()
							+ m_CaseInformationButton.getHeight()){
					y =
						m_CaseInformationButton.getY()
							+ m_CaseInformationButton.getHeight();
					//System.err.println("--------------------------------------------------------------");
				}
				if (y
					< m_CaseInformationButton.getY()
						+ m_CaseInformationButton.getHeight()
					&& x
						< m_CaseInformationButton.getX()
							+ m_CaseInformationButton.getWidth())
					x =
						m_CaseInformationButton.getX()
							+ m_CaseInformationButton.getWidth();

				//System.out.println("x-->"+x+"== e.getX() - m_Start.getX()"+(e.getX() - m_Start.getX()));
				
//				<<11/07/2005 Kenneth Lai: Left margin
				if( /*m_ActiveComponent.length == 1 && */x == (int) ( e.getX() - m_Start.getX() + Operator.ICON_WIDTH ) 
				   && (x-Operator.ICON_WIDTH) < 20 )
				    x = SCROLLPANE_X_MARGIN;
				else if (x == (int) (e.getX() - m_Start.getX()) && x < SCROLLPANE_X_MARGIN)
					x = SCROLLPANE_X_MARGIN;
//				else if(isFirstMutiSelect && x< 45)
//				    x = 0;
//				11/07/2005 Kenneth Lai: Left margin>>
				
				if (y == (int) (e.getY() - m_Start.getY()) && y < 2)
					y = 2;
							
//				<<16/06/2005 Mark Li: Modified for multi-selection
//				getActiveComponent().setLocation(x, y);
				//System.err.println("In drag---Updated--->X->"+x+",Y->"+y);
//				updateActiveComponentsBorderLocation(x,y);
//				16/06/2005 Mark Li: Modified for multi-selection>>
				updateActiveComponentsBorderLocation(x,y);
				
				width = m_PanelDiagramDrawing.getWidth();
				height = m_PanelDiagramDrawing.getHeight();
				
//				<<16/06/2005 Mark Li: Modified for multi-selection
//				if (x + getActiveComponent().getWidth() > width + 20)
//					width = x + getActiveComponent().getWidth();
//				if (y + getActiveComponent().getHeight() > height + 20)
//					height = y + getActiveComponent().getHeight();
				if (x + getActiveComponentWidth() + SCROLLPANE_X_MARGIN > width )
				    width = x + getActiveComponentWidth() + SCROLLPANE_X_MARGIN;
				if (y + getActiveComponentHeight() + SCROLLPANE_Y_MARGIN > height)
					height = y + getActiveComponentHeight() + SCROLLPANE_Y_MARGIN;
//				16/06/2005 Mark Li: Modified for multi-selection>>

				if (width != m_PanelDiagramDrawing.getWidth()
					|| height != m_PanelDiagramDrawing.getHeight()) {
					// Adjust panel size according to the operator which is farthest away from the origin of Viewport
					m_PanelDiagramDrawing.setPreferredSize(getDimension());
					m_PanelDiagramDrawing.setSize(getDimension());
					m_ScrollPaneDiagram.getViewport().scrollRectToVisible(
//							<<16/06/2005 Mark Li: Modified for multi-selection
//						getActiveComponent().getBounds());
					        getActiveComponentBorder());	
					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>>			
				} else {
//					m_PanelDiagramDrawing.setPreferredSize(getDimension());
//					m_PanelDiagramDrawing.setSize(getDimension());
//					m_ScrollPaneDiagram.getViewport().scrollRectToVisible(
////							<<16/06/2005 Mark Li: Modified for multi-selection
////						getActiveComponent().getBounds());
//					        getActiveComponentBorder());

⌨️ 快捷键说明

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