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

📄 jdfframe.java

📁 java xml 应用开发
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
		m_showInhAttrRadioItem = new JRadioButtonMenuItem(
				m_littleBundle.getString("ShowInhAttrKey"), m_iniFile.showInhAttr());
		m_showInhAttrRadioItem.addActionListener(this);
		m_validateMenu.add(m_showInhAttrRadioItem);
		
		m_validateMenu.add(new JSeparator());
		
		m_copyValidationListItem = new JMenuItem(m_littleBundle.getString("CopyValidationList"));
		m_copyValidationListItem.addActionListener(this);
		m_copyValidationListItem.setEnabled(false);
		m_validateMenu.add(m_copyValidationListItem);
		
		return m_validateMenu;
	}
	/**
	 * Creates the Help menu.
	 * @return The Help menu with the menu items.
	 */
	private JMenu drawHelpMenu()
	{
		final Menu_MouseListener menuListener = new Menu_MouseListener();
		
		m_helpMenu = new JMenu(m_littleBundle.getString("HelpKey"));
		m_helpMenu.setBorderPainted(false);
		m_helpMenu.addMouseListener(menuListener);
		
		m_helpItem = new JMenuItem(m_littleBundle.getString("HelpKey"));
		m_helpItem.addActionListener(this);
		m_helpMenu.add(m_helpItem);
		
		m_helpMenu.add(new JSeparator());
		
		m_aboutItem = new JMenuItem(m_littleBundle.getString("AboutThisAppKey"));
		m_aboutItem.addActionListener(this);
		m_helpMenu.add(m_aboutItem);
		
		m_versionItem = new JMenuItem(m_littleBundle.getString("JDFEditorVerKey"));
		m_versionItem.addActionListener(this);
		m_helpMenu.add(m_versionItem);
		
		return m_helpMenu;
	}
	/**
	 * Checks if the String[] m_recentFiles file has any content. 
	 * Called to check if the the m_recentFilesMenu is to be created. 
	 * @return true if any file has recently been opened; false otherwise.
	 */
	private boolean recentFilesExists()
	{
		boolean exist = false;
		m_recentFiles = m_iniFile.getRecentFiles();
		
		if(m_recentFiles[0] != null)
			exist = true;
		
		return exist;
	}
	/**
	 * Method drawBoxContent.
	 * @return Box
	 */
	private Box drawBoxContent()
	{
		final Box box_splitPane = Box.createHorizontalBox();
		box_splitPane.add(drawSplitPane());
		
		final Box box_content = Box.createVerticalBox();            
		m_buttonBar = new JToolBar(SwingConstants.HORIZONTAL);
		drawButtonBar();
		box_content.add(m_buttonBar);
		box_content.add(box_splitPane);
		
		return box_content;
	}
	/**
	 * Method drawButtonBar.
	 */
	void drawButtonBar()
	{
		final ImageIcon imgNew = Editor.getImageIcon(getClass(), "/icons/NewButton.gif");
		final ImageIcon imgOpen = Editor.getImageIcon(getClass(), "/icons/OpenButton.gif");
		final ImageIcon imgSave = Editor.getImageIcon(getClass(), "/icons/SaveButton.gif");
		final ImageIcon imgCut = Editor.getImageIcon(getClass(), "/icons/CutButton.gif");
		final ImageIcon imgCopy = Editor.getImageIcon(getClass(), "/icons/CopyButton.gif");
		final ImageIcon imgPaste = Editor.getImageIcon(getClass(), "/icons/PasteButton.gif");
		final ImageIcon imgUndo = Editor.getImageIcon(getClass(), "/icons/UndoButton.gif");
		final ImageIcon imgRedo = Editor.getImageIcon(getClass(), "/icons/RedoButton.gif");
		final ImageIcon imgReval = Editor.getImageIcon(getClass(), "/icons/RevalidateButton.gif");
		final ImageIcon imgUp = Editor.getImageIcon(getClass(), "/icons/UpButton.gif");
		final ImageIcon imgPrint = Editor.getImageIcon(getClass(), "/icons/PrintButton.gif");
		final ImageIcon imgZoomIn = Editor.getImageIcon(getClass(), "/icons/ZoomInButton.gif");
		final ImageIcon imgZoomOut = Editor.getImageIcon(getClass(), "/icons/ZoomOutButton.gif");
		final ImageIcon imgZoomOrig = Editor.getImageIcon(getClass(), "/icons/ZoomOrigButton.gif");
		final ImageIcon imgZoomBest = Editor.getImageIcon(getClass(), "/icons/ZoomBestButton.gif");
		final ImageIcon imgRefresh = Editor.getImageIcon(getClass(), "/icons/RefreshButton.gif");
		
		final Dimension d = new Dimension(10, 30);
		m_buttonBar.setFloatable(false);
		
		m_newButton = createDefaultButton(imgNew, m_littleBundle.getString("NewKey"), true);
		m_buttonBar.add(m_newButton);
		
		m_openButton = createDefaultButton(imgOpen, m_littleBundle.getString("OpenKey"), true);
		m_buttonBar.add(m_openButton);
		
		m_saveButton = createDefaultButton(imgSave, m_littleBundle.getString("SaveKey"), false);
		m_buttonBar.add(m_saveButton);
		
		m_buttonBar.addSeparator(d);
		
		m_printButton = createDefaultButton(imgPrint, m_littleBundle.getString("PrintKey"), false);
		m_buttonBar.add(m_printButton);
		
		m_refreshButton = createDefaultButton(imgRefresh, m_littleBundle.getString("RefreshKey"), false);
		m_buttonBar.add(m_refreshButton);
		
		m_buttonBar.addSeparator(d);
		
		m_cutButton = createDefaultButton(imgCut, m_littleBundle.getString("CutKey"), false);
		m_buttonBar.add(m_cutButton);
		
		m_copyButton = createDefaultButton(imgCopy, m_littleBundle.getString("CopyKey"), false);
		m_buttonBar.add(m_copyButton);
		
		m_pasteButton = createDefaultButton(imgPaste, m_littleBundle.getString("PasteKey"), false);
		m_buttonBar.add(m_pasteButton);
		
		m_buttonBar.addSeparator(d);
		
		m_undoButton = createDefaultButton(imgUndo, m_littleBundle.getString("UndoKey"), false);
		m_undoButton.addActionListener(undoAction);
		m_buttonBar.add(m_undoButton);
		
		m_redoButton = createDefaultButton(imgRedo, m_littleBundle.getString("RedoKey"), false);
		m_redoButton.addActionListener(redoAction);
		m_buttonBar.add(m_redoButton);
		
		m_buttonBar.addSeparator(d);
		
		m_validateButton = createDefaultButton(imgReval, m_littleBundle.getString("ValidateToolTipKey"), false);
		m_buttonBar.add(m_validateButton);
		
		m_upOneLevelButton = createDefaultButton(imgUp, m_littleBundle.getString("GoUpInProcessViewKey"), false);
		m_buttonBar.add(m_upOneLevelButton);
		
		m_buttonBar.addSeparator(d);
		
		m_zoomInButton = createDefaultButton(imgZoomIn, m_littleBundle.getString("ZoomInKey"), false);
		m_buttonBar.add(m_zoomInButton);
		
		m_zoomOutButton = createDefaultButton(imgZoomOut, m_littleBundle.getString("ZoomOutKey"), false);
		m_buttonBar.add(m_zoomOutButton);
		
		m_zoomOrigButton = createDefaultButton(imgZoomOrig, m_littleBundle.getString("ZoomOrigKey"), false);
		m_buttonBar.add(m_zoomOrigButton);
		
		m_zoomBestButton = createDefaultButton(imgZoomBest, m_littleBundle.getString("ZoomFitKey"), false);
		m_buttonBar.add(m_zoomBestButton);
		
		m_buttonBar.addSeparator(d);
		
		m_buttonBar.add(Box.createHorizontalGlue());
		SwingUtilities.updateComponentTreeUI(m_buttonBar);
	}
	/**
	 * Creates a JButton with the default settings.
	 * @param iconStr - The Path to the image file
	 * @param tip     - The tool tip
	 * @param enabled - If the button is enabled or disabled initially
	 * @return The default JButton.
	 */
	private JButton createDefaultButton(ImageIcon icon, String tip, boolean enabled)
	{
		final JButton button = new JButton(icon);
		
		if (m_currentLookAndFeel.equalsIgnoreCase("com.sun.java.swing.plaf.motif.MotifLookAndFeel"))
			button.setPreferredSize(new Dimension(45, 45));
		else
			button.setPreferredSize(new Dimension(30, 30));
		
		button.addActionListener(this);
		button.addMouseListener(new Button_MouseListener());
		button.setBorderPainted(false);
		button.setEnabled(enabled);
		button.setToolTipText(tip);
		
		return button;
	}
	/**
	 * Draws the splitpanes in which the views are to be displayed
	 * @return JSplitPane
	 */
	private JSplitPane drawSplitPane()
	{
		final Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
		
		m_inOutArea = new JPanel();
		m_inOutArea.setLayout(null);
		m_inOutArea.setBackground(Color.white);
		
		m_inOutAreaLeft = new JPanel();
		m_inOutAreaLeft.setLayout(null);
		m_inOutAreaLeft.setBackground(Color.white);
		m_inOutArea.add(m_inOutAreaLeft);
		
		m_inOutAreaMiddle = new JPanel();
		m_inOutAreaMiddle.setLayout(null);
		m_inOutAreaMiddle.setBackground(Color.white);
		m_inOutArea.add(m_inOutAreaMiddle);
		
		m_inOutAreaRight = new JPanel();
		m_inOutAreaRight.setLayout(null);
		m_inOutAreaRight.setBackground(Color.white);
		m_inOutArea.add(m_inOutAreaRight);
		
		m_inOutArea.add(Box.createHorizontalGlue());
		
		m_rightTabbedPane = new JTabbedPane();
		m_rightTabbedPane.setBorder(BorderFactory.createLineBorder(Color.black));
		
		m_inOutScrollPane = new JScrollPane();
		m_inOutScrollPane.getViewport().add(m_inOutArea, null);
		m_inOutScrollPane.getVerticalScrollBar().setUnitIncrement(20);
		m_inOutScrollPane.getHorizontalScrollBar().setUnitIncrement(20);
		m_rightTabbedPane.addTab(m_littleBundle.getString("NextNeighbourKey"), null,
				m_inOutScrollPane, m_littleBundle.getString("NextNeighbourKey"));
		m_rightTabbedPane.setComponentAt(m_IO_INDEX, m_inOutScrollPane);
		m_rightTabbedPane.setSelectedIndex(m_IO_INDEX);
		
		m_processArea = new JTextArea();
		m_processArea.setEditable(false);
		m_processScrollPane = new JScrollPane();
		m_processScrollPane.getViewport().add(m_processArea, null);
		m_processScrollPane.getVerticalScrollBar().setUnitIncrement(20);
		m_processScrollPane.getHorizontalScrollBar().setUnitIncrement(20);
		m_rightTabbedPane.addTab(m_littleBundle.getString("ProcessViewKey"), null,
				m_processScrollPane, m_littleBundle.getString("ProcessViewKey"));
		m_rightTabbedPane.setComponentAt(m_PROC_INDEX, m_processScrollPane);
		
		m_devCapArea = new JTextArea();
		m_devCapArea.setEditable(true);
		m_devCapArea.setBackground(Color.white);
		
		m_devCapScrollPane = new JScrollPane();
		m_devCapScrollPane.getViewport().add(m_devCapArea, null);
		m_devCapScrollPane.getVerticalScrollBar().setUnitIncrement(20);
		m_devCapScrollPane.getHorizontalScrollBar().setUnitIncrement(20);
		m_rightTabbedPane.addTab(m_littleBundle.getString("DevCapViewKey"), null,
				m_devCapScrollPane, m_littleBundle.getString("DevCapViewKey"));
		m_rightTabbedPane.setComponentAt(m_DC_INDEX, m_devCapScrollPane);
		
		m_commentArea = new JTextArea();
		m_commentArea.setEditable(true);
		m_commentArea.setBackground(Color.white);
		
		m_commentScrollPane = new JScrollPane();
		m_commentScrollPane.getViewport().add(m_commentArea, null);
		m_commentScrollPane.getVerticalScrollBar().setUnitIncrement(20);
		m_commentScrollPane.getHorizontalScrollBar().setUnitIncrement(20);
		m_rightTabbedPane.addTab(m_littleBundle.getString("CommentViewKey"), null,
				m_commentScrollPane, m_littleBundle.getString("CommentViewKey"));
		m_rightTabbedPane.setComponentAt(m_COM_INDEX, m_commentScrollPane);
		m_rightTabbedPane.setEnabledAt(m_COM_INDEX, false);
		
		
		final MouseAdapter tabbedPaneListener = new MouseAdapter()
		{
			public void mouseClicked(MouseEvent e)
			{
				if (m_rightTabbedPane.getSelectedIndex() == m_PROC_INDEX)
					initProcessView();
				
				else if (m_rightTabbedPane.getSelectedIndex() == m_COM_INDEX
						|| m_rightTabbedPane.getSelectedIndex() == m_IO_INDEX
						|| m_rightTabbedPane.getSelectedIndex() == m_DC_INDEX)
				{
					m_upOneLevelButton.setEnabled(false);
					m_zoomInButton.setEnabled(false);
					m_zoomOutButton.setEnabled(false);
					m_zoomOrigButton.setEnabled(false);
					m_zoomBestButton.setEnabled(false);
					
					if(m_rightTabbedPane.getSelectedIndex() == m_IO_INDEX)
					{
						clearInOutView();
						initInOutView();
					}
					else if (m_rightTabbedPane.getSelectedIndex() == m_COM_INDEX)
					{
						showComment();
					}
					else if (m_rightTabbedPane.getSelectedIndex() == m_DC_INDEX)
					{    
						// __Lena__ TBD - display DeviceCap Editor
					}
				}
			}
		};
		
		m_rightTabbedPane.addMouseListener(tabbedPaneListener);
		
		
		m_errorTabbedPane = new JTabbedPane();
		m_errorTabbedPane.setBorder(BorderFactory.createLineBorder(Color.black));
		
		m_validErrScroll = new JScrollPane();
		m_validErrScroll.getVerticalScrollBar().setUnitIncrement(20);
		m_validErrScroll.getHorizontalScrollBar().setUnitIncrement(20);
		m_validErrScroll.getViewport().setBackground(Color.white);
		m_validErrScroll.getViewport().setView(m_myList);
		m_errorTabbedPane.addTab(m_littleBundle.getString("ValidationResultKey"), null,
				m_validErrScroll, m_littleBundle.getString("ValidationResultKey"));
		m_errorTabbedPane.setComponentAt(m_VAL_ERRORS_INDEX, m_validErrScroll);
		
		m_devCapErrScroll = new JScrollPane();
		m_devCapErrScroll.getVerticalScrollBar().setUnitIncrement(20);
		m_devCapErrScroll.getHorizontalScrollBar().setUnitIncrement(20);
		m_devCapErrScroll.getViewport().setBackground(Color.white);
		m_errorTabbedPane.addTab(m_littleBundle.getString("DevCapOutputKey"), null,
				m_devCapErrScroll, m_littleBundle.getString("DevCapOutputKey"));
		m_errorTabbedPane.setComponentAt(m_DC_ERRORS_INDEX, m_devCapErrScroll);
		
		
		final MouseAdapter errorTabbedPaneListener = new MouseAdapter()
		{
			public void mouseClicked(MouseEvent e)
			{
				if (m_errorTabbedPane.getSelectedIndex() == m_VAL_ERRORS_INDEX) 
				{
					m_validErrScroll.getViewport().setView(m_myList);
				}  
			}
		};
		
		m_errorTabbedPane.addMouseListener(errorTabbedPaneListener);
		
		m_treeArea = new JTextArea();
		new DropTarget(m_treeArea, this);
		m_treeArea.setToolTipText(m_littleBundle.getString("TreeViewKey"));
		m_treeArea.setEditable(false);
		
		undomanager.setLimit( 100 );
		m_treeArea.getDocument().addUndoableEditListener(undomanager);
		undoSupport.addUndoableEditListener(undomanager);
		
		final JLabel treeLabel = new JLabel(" " + m_littleBundle.getString("TreeViewKey"));
		treeLabel.setPreferredSize(new Dimension(treeLabel.getPreferredSize().width, 23));
		treeLabel.setVerticalTextPosition(SwingConstants.BOTTOM);
		treeLabel.setToolTipText(m_littleBundle.getString("TreeViewKey"));
		treeLabel.setBorder(BorderFactory.createLineBorder(Color.black));
		
		m_treeScroll = new JScrollPane();
		m_treeScroll.getVerticalScrollBar().setUnitIncrement(20);
		m_treeScroll.getHorizontalScrollBar().setUnitIncrement(20);
		
		m_treeView = new JViewport();
		
		m_treeView.setView(m_treeArea);
		m_treeScroll.setViewport(m_treeView);
		m_treeScroll.setColumnHeaderView(treeLabel);
		
		final JSplitPane attAndErrorPane = new JSplitPane(JSplitPane.VERTICAL_SPLIT, m_rightTabbedPane, m_errorTabbedPane);
		attAndErrorPane.setDividerLocation(d.height / 2);
		attAndErrorPane.setResizeWeight(1);
		
		final JSplitPane splitPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, m_treeScroll, attAndErrorPane);
		splitPane.setDividerLocation(d.width / 4);
		
		return splitPane;
	}
	
	
	/**
	 * Initiate the Process View.

⌨️ 快捷键说明

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