Skip to content
Snippets Groups Projects
JdbcLdapBrowser.java 31.9 KiB
Newer Older

	/**
	 * 
	 */
	private void storeHistory() {
		StringBuffer buff = new StringBuffer();
		String[] hist = browser.history.getItems();
		for (int i=0,m=hist.length;i<m;i++) {
			buff.append(Base64.encode(hist[i]));
			if (i + 1 < m) {
				buff.append('|');
			}
		}
		
		Preferences prefs = Preferences.userNodeForPackage(this.getClass());
		prefs.put("JDBC_LDAP_HISTORY_" + browser.name,buff.toString());
	}

	/**
	 * @param SQL
	 * @return
	 */
	private String addScopeAndDN(String SQL) {
		int index;
		if (! browser.isDB) {
			SQL = browser.insertScope(SQL);
		
		
			String lsql = SQL.toLowerCase();
			index = lsql.indexOf(" from");
			String attrs = lsql.substring(6,index);
			StringTokenizer toker = new StringTokenizer(attrs);
			boolean hasdn = false;
			while (toker.hasMoreTokens()) {
				String token = toker.nextToken();
				hasdn = hasdn || token.equals("dn") || token.equals("*"); 
			}
			if (! hasdn) {
				SQL = "SELECT DN," + SQL.substring(6);
			}
		//System.out.println("SQL : " + SQL);
		return SQL;
	}

	

}

class ResizeEvent extends ControlAdapter {
	JdbcLdapBrowser browser;
	public ResizeEvent(JdbcLdapBrowser browser) {
		this.browser = browser;
	}
	public void controlResized(ControlEvent e) {
		if (browser.tabs != null && !browser.tabs.isDisposed()) {
			//System.out.println("in here");
			//browser.tabs.redraw();
			browser.tabs.getSelection().getControl().forceFocus();
		}
	}
}

class GetKey implements KeyListener {
	JdbcLdapBrowser browser;
	
	public GetKey(JdbcLdapBrowser browser) {
		this.browser = browser;
	}
	
	/* (non-Javadoc)
	 * @see org.eclipse.swt.events.KeyListener#keyPressed(org.eclipse.swt.events.KeyEvent)
	 */
	public void keyPressed(KeyEvent e) {
		if (e.stateMask == SWT.CONTROL && e.keyCode == 99) {
			browser.copyName();
		}
		
	}

	/* (non-Javadoc)
	 * @see org.eclipse.swt.events.KeyListener#keyReleased(org.eclipse.swt.events.KeyEvent)
	 */
	public void keyReleased(KeyEvent e) {
		// TODO Auto-generated method stub
		
	}

}

class ShowPopup implements MouseListener, KeyListener {
	JdbcLdapBrowser browser;
	
	long keyCode = -1;
	
	
	public ShowPopup(JdbcLdapBrowser browser) {
		this.browser = browser;
	}
	
	/* (non-Javadoc)
	 * @see org.eclipse.swt.events.MouseListener#mouseDoubleClick(org.eclipse.swt.events.MouseEvent)
	 */
	public void mouseDoubleClick(MouseEvent e) {
		// TODO Auto-generated method stub
		
	}

	/* (non-Javadoc)
	 * @see org.eclipse.swt.events.MouseListener#mouseDown(org.eclipse.swt.events.MouseEvent)
	 */
	public void mouseDown(MouseEvent e) {
		
		if (e.button == 3 || (e.button == 1 && this.keyCode == 262144 )) {
			if (e.getSource() instanceof Tree) {
				Tree tree = (Tree) e.getSource();
				Menu popup = new Menu(tree);
				Point pt = tree.toDisplay(new Point(e.x, e.y));
				popup.addMenuListener(new DrawTreeMenu(browser));
				popup.setLocation (pt.x, pt.y);
				popup.setVisible (true);
				Display display = tree.getDisplay ();
				while (popup != null && popup.isVisible ()) {
					if (!display.readAndDispatch ()) display.sleep ();
				}
				if (popup != null) {
					popup.dispose ();
					popup = null;
				}
			}
		}
		
	}

	/* (non-Javadoc)
	 * @see org.eclipse.swt.events.MouseListener#mouseUp(org.eclipse.swt.events.MouseEvent)
	 */
	public void mouseUp(MouseEvent e) {
		// TODO Auto-generated method stub
		
	}

	/* (non-Javadoc)
	 * @see org.eclipse.swt.events.KeyListener#keyPressed(org.eclipse.swt.events.KeyEvent)
	 */
	public void keyPressed(KeyEvent e) {
		// TODO Auto-generated method stub
		
		this.keyCode = e.keyCode;
	}

	/* (non-Javadoc)
	 * @see org.eclipse.swt.events.KeyListener#keyReleased(org.eclipse.swt.events.KeyEvent)
	 */
	public void keyReleased(KeyEvent e) {
		// TODO Auto-generated method stub
		this.keyCode = -1;
	}
	
}

class DrawTreeMenu implements MenuListener {
	
	JdbcLdapBrowser browser;
	
	public DrawTreeMenu(JdbcLdapBrowser browser) {
		this.browser = browser;
	}
	
	public void menuHidden(MenuEvent e) {
		
	}
	
	public void menuShown(MenuEvent e) {
		
//		first dispose of current entries
			  Menu popup = (Menu) e.widget;
			  MenuItem mis[] = popup.getItems();
			  for (int i=0,m=mis.length;i<m;i++) {
				  mis[i].dispose();
			  }
		
			  
			 JdbcLdapBrowserApp.drawEditMenu(popup,true);
			  
			  /*Iterator browsers = app.browsers.keySet().iterator();
		
			  while (browsers.hasNext()) {
				  MenuItem mi = new MenuItem(closeMenu,SWT.PUSH);
				  mi.setText((String) browsers.next());
				  mi.addSelectionListener(
				  		new SelectionAdapter() {
							public void widgetSelected(SelectionEvent event) {
									app.removeBrowser(((MenuItem)event.widget).getText());							
								}
				  		}
				  
				  		
				  );
			  }*/
	}

	
}