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

📄 siblingtest.java

📁 定要上载质量高而定要上载质量高而定要上载质量高而定要上载质量高而定要上载质量高而
💻 JAVA
字号:
/*
 * Created on Mar 4, 2005
 */
package org.flexdock.test;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.EventQueue;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.util.ArrayList;
import java.util.Collections;

import javax.swing.JComboBox;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.border.EmptyBorder;
import javax.swing.border.LineBorder;

import org.flexdock.demos.util.VSNetStartPage;
import org.flexdock.docking.Dockable;
import org.flexdock.docking.DockingConstants;
import org.flexdock.docking.DockingManager;
import org.flexdock.docking.defaults.DefaultDockingStrategy;
import org.flexdock.util.SwingUtility;
import org.flexdock.view.View;
import org.flexdock.view.Viewport;

/**
 * @author Christopher Butler
 */
public class SiblingTest extends JFrame implements DockingConstants {
	private JDialog siblingTestDialog;
	
	public static void main(String[] args) {
		SwingUtility.setPlaf("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
		//		SwingUtility.setPlaf("com.sun.java.swing.plaf.motif.MotifLookAndFeel");
		//		SwingUtility.setPlaf("com.sun.java.swing.plaf.gtk.GTKLookAndFeel");
		EventQueue.invokeLater(new Runnable() {
			public void run() {
				startup();
			}
		});
	}
	
	private static void startup() {
		JFrame f = new SiblingTest();
		f.setSize(800, 600);
		SwingUtility.centerOnScreen(f);
		f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		f.setVisible(true);		
	}

	public SiblingTest() {
		super("Viewport Demo");
		setContentPane(createContentPane());
	}

	private JPanel createContentPane() {
		JPanel p = new JPanel(new BorderLayout(0, 0));
		p.setBorder(new EmptyBorder(5, 5, 5, 5));

		Viewport viewport = new Viewport();
		p.add(viewport, BorderLayout.CENTER);

		View startPage = createStartPage();
		View view1 = createView("solution.explorer", "Solution Explorer");
		View view2 = createView("task.list", "Task List");
		View view3 = createView("class.view", "Class View");
		View view4 = createView("message.log", "Message Log");

		viewport.dock(startPage);
		startPage.dock(view1, WEST_REGION, .3f);
		startPage.dock(view2, SOUTH_REGION, .3f);
		startPage.dock(view4, EAST_REGION, .3f);
		view1.dock(view3, SOUTH_REGION, .3f);

		return p;
	}

	private View createView(String id, String text) {
		View view = new View(id, text);
		view.addAction(CLOSE_ACTION);
		view.addAction(PIN_ACTION);

		JPanel p = new JPanel();
		//		p.setBackground(Color.WHITE);
		p.setBorder(new LineBorder(Color.GRAY, 1));

		JTextField t = new JTextField(text);
		t.setPreferredSize(new Dimension(100, 20));
		p.add(t);

		view.setContentPane(p);
		return view;
	}

	
	private JDialog getSiblingTestDialog() {
		if(siblingTestDialog==null) {
			siblingTestDialog = new JDialog(this, "Sibling Test");
			siblingTestDialog.setContentPane(new SiblingTestPanel());
		}
		return siblingTestDialog;
	}

	private View createStartPage() {

		String id = "startPage";

		VSNetStartPage page = new VSNetStartPage();
		page.getNewProjButton().addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent ae) {
				
				JDialog dialog = getSiblingTestDialog();
				if(dialog.isVisible())
					return;
				
				dialog.setVisible(true);
				dialog.pack();
				testSiblings();
			}
		});

		View view = new View(id, null, null);
		view.setTerritoryBlocked(CENTER_REGION, true);
		view.setTitlebar(null);
		view.setContentPane(page);

		return view;
	}
	
	private void testSiblings() {
		SiblingTestPanel panel = (SiblingTestPanel)getSiblingTestDialog().getContentPane();
		panel.sync();
	}

	


	private class SiblingTestPanel extends JPanel {
		private JComboBox dockableList;
		private JComboBox regionList;
		private JLabel siblingLabel;
		
		private SiblingTestPanel() {
			init();
		}

		private JComboBox getDockableList() {
			if (dockableList != null)
				return dockableList;

			ArrayList list = new ArrayList(DockingManager.getDockableIds());
			Collections.sort(list);
			String[] dockableIds = (String[]) list.toArray(new String[0]);
			dockableList = new JComboBox(dockableIds);
			return dockableList;
		}

		private JComboBox getRegionList() {
			if (regionList != null)
				return regionList;

			String[] regions = { NORTH_REGION, SOUTH_REGION, EAST_REGION, WEST_REGION };
			regionList = new JComboBox(regions);
			return regionList;
		}
		
		private JLabel getSiblingLabel() {
			if(siblingLabel==null)
				siblingLabel = new JLabel();
			return siblingLabel;
		}
		

		private void init() {
			setLayout(new GridBagLayout());
			setBorder(new EmptyBorder(5, 5, 5, 10));
			
			GridBagConstraints gbc = new GridBagConstraints();
			gbc.anchor = GridBagConstraints.WEST;
			gbc.fill = GridBagConstraints.HORIZONTAL;
			gbc.insets = new Insets(6, 6, 0, 0);
			gbc.gridx = GridBagConstraints.RELATIVE;
			gbc.gridy = 0;

			add(new JLabel("Dockable:"), gbc);
			gbc.gridwidth = GridBagConstraints.REMAINDER;
			add(getDockableList(), gbc);

			gbc.gridy++;
			gbc.gridwidth = 1;
			add(new JLabel("Region:"), gbc);
			add(getRegionList(), gbc);

			gbc.gridy++;
			gbc.gridwidth = 1;
			add(new JLabel("Sibling:"), gbc);
			add(getSiblingLabel(), gbc);
			
			ItemListener syncher = new ItemListener() {
				public void itemStateChanged(ItemEvent evt) {
					sync();
				}
			};
			getDockableList().addItemListener(syncher);
			getRegionList().addItemListener(syncher);
		}
		
		public void sync() {
			String viewId = (String)getDockableList().getSelectedItem();
			String region = (String)getRegionList().getSelectedItem();
			
			Dockable dockable = DockingManager.getDockable(viewId);
			Dockable sibling = DefaultDockingStrategy.getSibling(dockable, region);
			getSiblingLabel().setText(sibling==null? "null": sibling.toString());
		}
	}

}

⌨️ 快捷键说明

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