Skip to content

Instantly share code, notes, and snippets.

@seraphy
Created July 6, 2012 05:58
Show Gist options
  • Save seraphy/3058325 to your computer and use it in GitHub Desktop.
Save seraphy/3058325 to your computer and use it in GitHub Desktop.
JIDEのDocking FrameworkをJAppletで使う場合の設定例
grant codeBase "http://localhost:8080/JideDockingViewAppletSample/-" {
permission java.awt.AWTPermission "accessEventQueue";
permission java.awt.AWTPermission "setDropTarget";
permission java.awt.AWTPermission "accessClipboard";
permission java.awt.AWTPermission "acceptDropBetweenAccessControllerContexts";
permission java.awt.AWTPermission "listenToAllAWTEvents";
};
import java.awt.BorderLayout;
import java.awt.Component;
import java.awt.Container;
import java.awt.Dimension;
import javax.swing.Icon;
import javax.swing.JApplet;
import javax.swing.JList;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.SwingUtilities;
import javax.swing.UIManager;
import com.jidesoft.docking.DefaultDockingManager;
import com.jidesoft.docking.DockContext;
import com.jidesoft.docking.DockableFrame;
import com.jidesoft.docking.DockableHolder;
import com.jidesoft.docking.DockingManager;
import com.jidesoft.icons.JideIconsFactory;
import com.jidesoft.swing.JideScrollPane;
/**
* JIDEのDocking Frameworkなどは、AWTEventなどのハンドリングのため、
* いくつかの権限が必要であり、サンドボックスでは動作しない。
* .java.policyファイルを設定するか、署名付きアプレットにする必要がある.
*/
public class DockingViewApplet extends JApplet implements DockableHolder {
private static final long serialVersionUID = 1L;
private static DockingManager _dockingManager;
@Override
public void init() {
// Appletの外観をシステムのデフォルトのLook And Feelにする。
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
} catch (Exception ex) {
// Just accept the default L&F
}
SwingUtilities.updateComponentTreeUI(this);
// (必要なら、ここでJIDEのライセンスを設定)
// 既定の初期化処理を行う.
super.init();
// Dockingコンテナの設定.
// 以下、ほぼJIDEのサンプルのまま
Container container = getContentPane();
_dockingManager = new DefaultDockingManager(this, container);
_dockingManager.setOutlineMode(DockingManager.FULL_OUTLINE_MODE);
_dockingManager.beginLoadLayoutData();
_dockingManager.setInitSplitPriority(DockingManager.SPLIT_EAST_WEST_SOUTH_NORTH);
// add all dockable frames
_dockingManager.addFrame(createSampleTaskListFrame());
_dockingManager.addFrame(createSampleResourceViewFrame());
_dockingManager.addFrame(createSampleClassViewFrame());
_dockingManager.addFrame(createSampleProjectViewFrame());
_dockingManager.addFrame(createSampleServerFrame());
_dockingManager.addFrame(createSamplePropertyFrame());
_dockingManager.addFrame(createSampleFindResult1Frame());
_dockingManager.addFrame(createSampleFindResult2Frame());
_dockingManager.addFrame(createSampleFindResult3Frame());
_dockingManager.addFrame(createSampleOutputFrame());
_dockingManager.addFrame(createSampleCommandFrame());
_dockingManager.getWorkspace().setAcceptDockableFrame(false);
_dockingManager.getWorkspace().setAdjustOpacityOnFly(true);
// load layout information from previous session. This indicates the end of beginLoadLayoutData() method above.
_dockingManager.loadLayoutData();
//_frame.toFront();
}
protected static DockableFrame createDockableFrame(String key, Icon icon) {
DockableFrame frame = new DockableFrame(key, icon);
frame.setPreferredSize(new Dimension(200, 200));
return frame;
}
private static JScrollPane createScrollPane(Component component) {
JScrollPane pane = new JideScrollPane(component);
pane.setVerticalScrollBarPolicy(JideScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
return pane;
}
protected static DockableFrame createSampleProjectViewFrame() {
DockableFrame frame = createDockableFrame("Project View", JideIconsFactory.getImageIcon(JideIconsFactory.DockableFrame.FRAME1));
frame.getContext().setInitMode(DockContext.STATE_AUTOHIDE);
frame.getContext().setInitSide(DockContext.DOCK_SIDE_EAST);
frame.add(createScrollPane(new JTextArea()));
return frame;
}
protected static DockableFrame createSampleClassViewFrame() {
DockableFrame frame = createDockableFrame("Class View", JideIconsFactory.getImageIcon(JideIconsFactory.DockableFrame.FRAME2));
frame.getContext().setInitMode(DockContext.STATE_FRAMEDOCKED);
frame.getContext().setInitSide(DockContext.DOCK_SIDE_EAST);
frame.getContext().setInitIndex(1);
frame.add(createScrollPane(new JTextArea()));
frame.setTitle("Class View - DockingFrameworkDemo");
frame.setTabTitle("Class View");
return frame;
}
protected static DockableFrame createSampleServerFrame() {
DockableFrame frame = createDockableFrame("Server Explorer", JideIconsFactory.getImageIcon(JideIconsFactory.DockableFrame.FRAME3));
frame.getContext().setInitMode(DockContext.STATE_AUTOHIDE);
frame.getContext().setInitSide(DockContext.DOCK_SIDE_WEST);
frame.getContext().setInitIndex(0);
frame.add(createScrollPane(new JTextArea()));
frame.setToolTipText("Server");
return frame;
}
protected static DockableFrame createSampleResourceViewFrame() {
DockableFrame frame = createDockableFrame("Resource View", JideIconsFactory.getImageIcon(JideIconsFactory.DockableFrame.FRAME4));
frame.getContext().setInitMode(DockContext.STATE_FRAMEDOCKED);
frame.getContext().setInitSide(DockContext.DOCK_SIDE_EAST);
frame.getContext().setInitIndex(1);
frame.add(createScrollPane(new JTextArea()));
frame.setTitle("Resource View");
return frame;
}
protected static DockableFrame createSamplePropertyFrame() {
DockableFrame frame = createDockableFrame("Property", JideIconsFactory.getImageIcon(JideIconsFactory.DockableFrame.FRAME5));
frame.getContext().setInitMode(DockContext.STATE_FRAMEDOCKED);
frame.getContext().setInitSide(DockContext.DOCK_SIDE_WEST);
frame.getContext().setInitIndex(0);
frame.getContentPane().setLayout(new BorderLayout());
frame.add(createScrollPane(new JTextArea()));
return frame;
}
static int i = 0;
protected static DockableFrame createSampleTaskListFrame() {
DockableFrame frame = createDockableFrame("Task List", JideIconsFactory.getImageIcon(JideIconsFactory.DockableFrame.FRAME6));
frame.getContext().setInitMode(DockContext.STATE_FRAMEDOCKED);
frame.getContext().setInitSide(DockContext.DOCK_SIDE_SOUTH);
JList list = new JList(new String[]{"Task1", "Task2", "Task3"});
list.setToolTipText("This is a tooltip");
frame.add(createScrollPane(list));
// frame.addAdditionalButtonActions(new AbstractAction("test") {
// public void actionPerformed(ActionEvent e) {
// System.out.println("Test additional buttons.");
// }
// }, JideIconsFactory.getImageIcon(JideIconsFactory.DockableFrame.FRAME6));
return frame;
}
protected static DockableFrame createSampleCommandFrame() {
DockableFrame frame = createDockableFrame("Command", JideIconsFactory.getImageIcon(JideIconsFactory.DockableFrame.FRAME7));
frame.getContext().setInitMode(DockContext.STATE_FRAMEDOCKED);
frame.getContext().setInitSide(DockContext.DOCK_SIDE_SOUTH);
frame.getContext().setInitIndex(1);
JTextArea textArea = new JTextArea();
frame.add(createScrollPane(textArea));
textArea.setText(">");
return frame;
}
protected static DockableFrame createSampleOutputFrame() {
DockableFrame frame = createDockableFrame("Output", JideIconsFactory.getImageIcon(JideIconsFactory.DockableFrame.FRAME8));
frame.getContext().setInitMode(DockContext.STATE_FRAMEDOCKED);
frame.getContext().setInitSide(DockContext.DOCK_SIDE_SOUTH);
frame.getContext().setInitIndex(0);
frame.setLayout(new BorderLayout(2, 2));
frame.add(createScrollPane(new JTextArea()));
frame.add(new JTextField(), BorderLayout.AFTER_LAST_LINE);
return frame;
}
protected static DockableFrame createSampleFindResult1Frame() {
DockableFrame frame = createDockableFrame("Find Results 1", JideIconsFactory.getImageIcon(JideIconsFactory.DockableFrame.FRAME9));
frame.getContext().setInitMode(DockContext.STATE_FRAMEDOCKED);
frame.getContext().setInitSide(DockContext.DOCK_SIDE_SOUTH);
frame.getContext().setInitIndex(0);
JTextArea textArea = new JTextArea();
frame.add(createScrollPane(textArea));
textArea.setText("Find all \"TestDock\", Match case, Whole word, Find Results 1, All Open Documents\n" +
"C:\\Projects\\src\\com\\jidesoft\\test\\TestDock.java(1):// TestDock.java : implementation of the TestDock class\n" +
"C:\\Projects\\src\\jidesoft\\test\\TestDock.java(8):#import com.jidesoft.test.TestDock;\n" +
"C:\\Projects\\src\\com\\jidesoft\\Test.java(10):#import com.jidesoft.test.TestDock;\n" +
"Total found: 3 Matching files: 5 Total files searched: 5");
return frame;
}
protected static DockableFrame createSampleFindResult2Frame() {
DockableFrame frame = createDockableFrame("Find Results 2", JideIconsFactory.getImageIcon(JideIconsFactory.DockableFrame.FRAME10));
frame.getContext().setInitMode(DockContext.STATE_FRAMEDOCKED);
frame.getContext().setInitSide(DockContext.DOCK_SIDE_SOUTH);
frame.getContext().setInitIndex(1);
JTextArea textArea = new JTextArea();
frame.add(createScrollPane(textArea));
textArea.setText("Find all \"TestDock\", Match case, Whole word, Find Results 2, All Open Documents\n" +
"C:\\Projects\\src\\com\\jidesoft\\test\\TestDock.java(1):// TestDock.java : implementation of the TestDock class\n" +
"C:\\Projects\\src\\jidesoft\\test\\TestDock.java(8):#import com.jidesoft.test.TestDock;\n" +
"C:\\Projects\\src\\com\\jidesoft\\Test.java(10):#import com.jidesoft.test.TestDock;\n" +
"Total found: 3 Matching files: 5 Total files searched: 5");
return frame;
}
protected static DockableFrame createSampleFindResult3Frame() {
DockableFrame frame = createDockableFrame("Find Results 3", JideIconsFactory.getImageIcon(JideIconsFactory.DockableFrame.FRAME11));
frame.getContext().setInitMode(DockContext.STATE_FRAMEDOCKED);
frame.getContext().setInitSide(DockContext.DOCK_SIDE_CENTER);
frame.getContext().setInitIndex(1);
frame.add(createScrollPane(new JTextArea()));
return frame;
}
@Override
public DockingManager getDockingManager() {
return _dockingManager;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment