📄 jxplorer.java
字号:
}
}
}
public void initJNDIBroker()
{
jndiBroker = new JNDIBroker();
if (CBUtility.getTrueLogLevel(log) == Level.ALL)
jndiBroker.setTracing(true); // set BER tracing on.
jndiBroker.setTimeout(Integer.parseInt(getProperty("option.ldap.timeout")));
jndiBroker.setLimit(Integer.parseInt(getProperty("option.ldap.limit")));
jndiThread = new Thread(jndiBroker, "jndiBroker Thread");
jndiThread.start();
}
public void initSearchBroker()
{
searchBroker = new JNDIBroker(jndiBroker);
searchThread = new Thread(searchBroker, "searchBroker Thread");
searchThread.start();
}
public void initSchemaBroker()
{
schemaBroker = new SchemaBroker(jndiBroker);
schemaThread = new Thread(schemaBroker, "schemaBroker Thread");
schemaThread.start();
}
/**
* initialise the offline broker, used for viewing ldif
* files independantly of a working directory.
*/
public void initOfflineBroker()
{
offlineBroker = new OfflineBroker(this);
offlineThread = new Thread(offlineBroker, "offlineBroker Thread");
offlineThread.start();
}
public void initStopMonitor()
{
Broker[] brokerList = {jndiBroker, searchBroker, schemaBroker, offlineBroker};
stopMonitor = new StopMonitor(brokerList, this);
}
/**
* returns the current stop monitor object.
*/
public StopMonitor getStopMonitor()
{
return stopMonitor;
}
/**
* Starts the GUI off, calling subroutines to initialise the
* overall window, the menu and the main panel.
*/
protected void setupGUI()
{
setupLookAndFeel();
setupWindowButtons(); // set response to window button clicks
setupHelp(); // set up the JavaHelp system
setupMenu(); // setup the menu items
setupMainPanel(); // set up the main viewing panel
setupStatusDisplay(); // set up the status panel
setupFrills(); // do funny icons and logos 'n stuff
positionBrowser(); // set the size and location of the main browser window.
}
/**
* Set the position and size of the browser to be (where possible) the same
* As it was the last time it was used.
*/
protected void positionBrowser()
{
int width, height, xpos, ypos;
try
{
width = Integer.parseInt(getProperty("width"));
height = Integer.parseInt(getProperty("height"));
xpos = Integer.parseInt(getProperty("xpos"));
ypos = Integer.parseInt(getProperty("ypos"));
}
catch (Exception e)
{
width = 800;
height = 600; // emergency fallbacks
Dimension screen = Toolkit.getDefaultToolkit().getScreenSize();
xpos = (screen.width - width) / 2;
ypos = (screen.height - height) / 2;
}
// In this unusual case, the centering will be slightly off - but we probably don't care.
if (width < 100) width = 100;
if (height < 100) height = 100;
setBounds(xpos, ypos, width, height);
setSize(width, height);
}
/**
* This sets the initial look and feel to the local system
* look and feel, if possible; otherwise uses the java default.
* (Note that user can change this using the 'view' menu item,
* set up below.)
*/
protected void setupLookAndFeel()
{
try
{
UIManager.setLookAndFeel(getProperty("gui.lookandfeel")); //TE: gets the look and feel from the property file.
}
catch (Exception exc)
{
log.warning("WARNING: Can't load Look and Feel: " + exc);
try
{
UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName());
setProperty("gui.lookandfeel", UIManager.getCrossPlatformLookAndFeelClassName());
}
catch (Exception exc2)
{
log.warning("ERRROR: Can't load sys Look and Feel either! : " + exc2);
}
}
}
/**
* Sets up the window behaviour to close the application on
* a window close.
*/
protected void setupWindowButtons()
{
addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent ev)
{
shutdown();
}
});
}
/**
* Sets up the menu items, along with appropriate listeners
*/
protected void setupMenu()
{
if (getProperty("gui.menu", "true").equals("true"))
mainMenu = new MainMenu(this);
}
/**
* Returns Main Menu.
*
* @return the main menue.
*/
public MainMenu getMainMenu()
{
return mainMenu;
}
/**
* Returns the JNDIBroker used for searching, and the search tree.
*
* @return the search broker.
*/
public JNDIBroker getSearchBroker()
{
return searchBroker;
}
/**
* Returns the tree's tabbed pane.
*
* @return the tabbed pane.
*/
public JTabbedPane getTreeTabPane()
{
return treeTabPane;
}
/**
* Returns the Explore panel.
*
* @return the explore panel.
*/
public JScrollPane getExplorePanel()
{
return explorePanel;
}
/**
* Returns the panel for displaying the search results.
*
* @return the results panel.
*/
public JScrollPane getResultsPanel()
{
return resultsPanel;
}
/**
* Returns the search display tree.
*
* @return the search (or results) tree.
*/
public SmartTree getSearchTree()
{
return searchTree;
}
/**
* Returns the display tree.
*
* @return the explore tree.
*/
public SmartTree getTree()
{
return mrTree;
}
/**
* Returns the schema display tree.
*
* @return the schema tree.
*/
public SmartTree getSchemaTree()
{
return schemaTree;
}
/**
* Returns the JXplorer frame.
*
* @return the root frame.
*/
public static JFrame getRootFrame()
{
return rootFrame;
}
/**
* Returns the Attribute Display.
*
* @return the main viewer.
*/
public AttributeDisplay getAttributeDisplay()
{
return mainViewer;
}
/**
* Sets up the main panel, and places the directory viewing
* panels in it.
*/
protected void setupMainPanel()
{
setupToolBars();
/* XXX - seems to cause some sort of evil thread contention stuff - DISABLE
*
* Spot of evil - stick these slow graphics init-ing options in a background thread
* to give the user a chance to do stuff (i.e. open a connection) while these are
* still loading...
*/
/*
Thread worker = new Thread()
{
public void run()
{
*/
setupActiveComponents(); // initialise the tree, result panel etc.
// prior to adding to the tabbed panes below
setupMainWorkArea(); // set up the split screen and tabbed panels.
mainPane.setBackground(Color.lightGray);
mainViewer.registerClassLoader(classLoader);
validate();
/*
}
};
worker.setPriority(2);
worker.start();
*/
}
protected void setupToolBars()
{
topPanel = new CBPanel();
searchBar = new SearchBar(this); // set up the tool bar with quick search
buttonBar = new ButtonBar(this); // sets up the tool bar with the graphics icons
//buttonBar.setSize(topPanel.getWidth(), 20);
topPanel.makeWide();
topPanel.addln(buttonBar);
topPanel.addln(searchBar);
mainPane.add(topPanel, BorderLayout.NORTH);
mainPane.setBackground(Color.white);
if (getProperty("gui.buttonbar", "true").equals("false"))
buttonBar.setVisible(false);
if (getProperty("gui.searchbar", "true").equals("false"))
searchBar.setVisible(false);
}
/**
* this is where smart objects such as the tree
* viewer, the results viewer (from the search class)
* and the attribute viewers get added to the panes.
*/
protected void setupActiveComponents()
{
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -