home *** CD-ROM | disk | FTP | other *** search
- import java.awt.BorderLayout;
- import java.awt.Checkbox;
- import java.awt.CheckboxGroup;
- import java.awt.Component;
- import java.awt.Container;
- import java.awt.Event;
- import java.awt.GridLayout;
- import java.awt.Label;
- import java.awt.Panel;
- import java.awt.TextField;
- import java.util.Enumeration;
- import java.util.Hashtable;
- import java.util.StringTokenizer;
- import java.util.Vector;
-
- public class JDPSearchHelp extends JDPClassLayout {
- JDPUser user;
- JDPJagg jaggSQL;
- JDPPopupMessage popuppanel;
- JDPMaskEdit JDPMaskEditMain;
- String moduleParameter;
- Panel Main;
- Panel Panel3;
- Panel Panel4;
- Label Label1;
- Label Label2;
- Panel Panel5;
- Panel Panel7;
- TextField searchFor;
- JDPButton JDPButton1;
- JDPChoice titles;
- Vector valuetitles;
- Panel Panel8;
- Label Label4;
- Panel Panel6;
- Panel Panel1;
- Checkbox containsAll;
- Checkbox containsAny;
- Checkbox matchWholeWords;
- String[] keyWords;
- Hashtable allTitles;
-
- public void InitClass(JDPUser var1, Panel var2, String var3) {
- this.user = var1;
- this.moduleParameter = var3;
- super.targetPanel = var2;
- this.jaggSQL = new JDPJagg(var1.jaggPath);
- ((Container)this).setLayout(new BorderLayout());
- this.popuppanel = new JDPPopupMessage(var1, this);
- ((Container)this).add(this.popuppanel);
- this.JDPMaskEditMain = new JDPMaskEdit();
- CheckboxGroup var4 = new CheckboxGroup();
- this.Main = new Panel();
- this.Panel3 = new Panel();
- this.Panel4 = new Panel();
- this.Label1 = new Label("Search for:", 0);
- this.Label2 = new Label("Topics:", 0);
- this.Panel5 = new Panel();
- this.Panel7 = new Panel();
- this.searchFor = new TextField("", 40);
- this.JDPButton1 = new JDPButton(JDPButton.getIconValue("Search"), "null", JDPButton.getAlignmentValue("Center"));
- this.titlesMain();
- this.Panel8 = new Panel();
- this.Label4 = new Label("", 0);
- this.Panel6 = new Panel();
- this.Panel1 = new Panel();
- this.containsAll = new Checkbox("Match all", var4, true);
- this.containsAny = new Checkbox("Match any", var4, false);
- this.matchWholeWords = new Checkbox("Match whole words only");
- this.matchWholeWords.setState(true);
- this.Main.setLayout(new BorderLayout());
- ((Container)this).add("Center", this.Main);
- this.Main.add("Center", this.Panel3);
- this.Panel3.setLayout(new JDPLineLayout());
- this.Panel3.add("Left", this.Panel4);
- this.Panel4.setLayout(new JDPRowLayout());
- this.Panel4.add("Left", this.Label1);
- this.Panel4.add("Left", this.Label2);
- this.Panel3.add("Left", this.Panel5);
- this.Panel5.setLayout(new GridLayout(2, 2));
- this.Panel5.add(this.Panel7);
- this.Panel7.setLayout(new BorderLayout());
- this.Panel7.add("Center", this.searchFor);
- this.Panel7.add("East", this.JDPButton1);
- this.Panel5.add(this.titles);
- this.Panel3.add("Left", this.Panel8);
- this.Panel8.setLayout(new BorderLayout());
- this.Panel8.add("Center", this.Label4);
- this.Panel3.add("Left", this.Panel6);
- this.Panel6.setLayout(new JDPRowLayout());
- this.Panel6.add("Left", this.Panel1);
- this.Panel1.setLayout(new JDPLineLayout());
- this.Panel1.add("Left", this.containsAll);
- this.Panel1.add("Left", this.containsAny);
- this.Panel6.add("Left", this.matchWholeWords);
- this.titles.setMinimumWidth(300);
- this.matchWholeWords.setState(true);
- var1.gParm.addElement(this);
- this.InitComponents();
- }
-
- public boolean handleEvent(Event var1) {
- switch (var1.id) {
- case 503:
- case 504:
- case 505:
- this.popuppanel.postEvent(var1);
- return false;
- case 1001:
- if (var1.target.equals(this.searchFor)) {
- this.loadMatchingTitles();
- return true;
- } else if (var1.target.equals(this.JDPButton1)) {
- this.loadMatchingTitles();
- return true;
- } else {
- if (var1.target.equals(this.titles)) {
- Event var2 = new Event(this, 1001, this.titles.getSelectedKey());
- ((Component)this).postEvent(var2);
- return true;
- }
-
- return false;
- }
- default:
- return false;
- }
- }
-
- public void InitComponents() {
- this.jaggSQL.setKeepConnectionOpen(false);
- this.loadTitles();
- }
-
- public String getSearchText() {
- return this.searchFor.getText();
- }
-
- public void setSearchText(String var1) {
- this.searchFor.setText(var1);
- }
-
- public boolean getContainsAll() {
- return this.containsAll.getState();
- }
-
- public void setContainsAll(boolean var1) {
- this.containsAll.setState(var1);
- }
-
- public JDPChoice getTitlesHandle() {
- return this.titles;
- }
-
- public void loadMatchingTitles() {
- this.jaggSQL.loadSettings(this.user);
- this.titles.clear();
- int var1 = 0;
- Vector var3 = new Vector();
- String var4 = "SELECT keyword, docindex FROM JDPKeyWd ";
- boolean var5 = true;
- if (this.matchWholeWords.getState()) {
- var4 = var4 + "WHERE keyword IN ('";
- StringTokenizer var2 = new StringTokenizer(this.searchFor.getText().toLowerCase(), " \t");
-
- for(this.keyWords = new String[var2.countTokens()]; var2.hasMoreTokens(); var4 = var4 + this.keyWords[var1 - 1]) {
- if (!var5) {
- var4 = var4 + "','";
- }
-
- var5 = false;
- this.keyWords[var1++] = var2.nextToken();
- }
-
- var4 = var4 + "')";
- } else {
- var4 = var4 + "WHERE keyword LIKE '%";
- StringTokenizer var16 = new StringTokenizer(this.searchFor.getText().toLowerCase(), " \t");
-
- for(this.keyWords = new String[var16.countTokens()]; var16.hasMoreTokens(); var4 = var4 + this.keyWords[var1 - 1]) {
- if (!var5) {
- var4 = var4 + "%' OR keyword LIKE '%";
- }
-
- var5 = false;
- this.keyWords[var1++] = var16.nextToken();
- }
-
- var4 = var4 + "%'";
- }
-
- this.jaggSQL.execSQL(var4, var3);
- Hashtable var10 = new Hashtable();
-
- for(int var11 = 0; var11 < var3.size(); ++var11) {
- StringTokenizer var17 = new StringTokenizer((String)var3.elementAt(var11), this.jaggSQL.getSEP());
- String var6 = var17.nextToken();
- String var8 = var17.nextToken();
- byte[] var12 = new byte[var8.length()];
- var8.getBytes(0, var12.length, var12, 0);
-
- for(int var13 = 0; var13 < var12.length; ++var13) {
- String var9 = Integer.toString(var12[var13]);
- char[] var7 = (char[])var10.get(var9);
- if (var7 == null) {
- var7 = new char[this.keyWords.length];
-
- for(int var14 = 0; var14 < this.keyWords.length; ++var14) {
- var7[var14] = '0';
- }
- }
-
- for(int var25 = 0; var25 < this.keyWords.length; ++var25) {
- if (var6.indexOf(this.keyWords[var25]) >= 0) {
- var7[var25] = '1';
- }
- }
-
- var10.put(var9, var7);
- }
- }
-
- Enumeration var26 = var10.keys();
-
- while(var26.hasMoreElements()) {
- String var22 = (String)var26.nextElement();
- char[] var21 = (char[])var10.get(var22);
- var1 = 0;
- boolean var24 = true;
-
- while(var24 && var1 < var21.length) {
- if (var21[var1++] == '0') {
- var24 = false;
- }
- }
-
- if (this.containsAll.getState() && var24 || this.containsAny.getState()) {
- String[] var23 = (String[])this.allTitles.get(var22);
- if (var23 != null) {
- this.titles.addItem(var23[1], var23[0]);
- }
- }
- }
-
- this.titles.sortItems();
- this.titles.select(0);
- }
-
- public void loadTitles() {
- this.jaggSQL.loadSettings(this.user);
- this.allTitles = new Hashtable();
- Vector var1 = new Vector();
- String var2 = "SELECT docindex, filename, title FROM JDPDocIx ";
- this.jaggSQL.execSQL(var2, var1);
-
- for(int var5 = 0; var5 < var1.size(); ++var5) {
- StringTokenizer var4 = new StringTokenizer((String)var1.elementAt(var5), this.jaggSQL.getSEP());
- String var3 = var4.nextToken();
- String[] var6 = new String[]{var4.nextToken(), var4.nextToken()};
- this.allTitles.put(var3, var6);
- }
-
- }
-
- public String getSelectedDocument() {
- this.user.JDesignerPro.wwwroot.substring(this.user.JDesignerPro.JDPDomain.length() - 1);
- return "/Docs/" + this.titles.getSelectedKey();
- }
-
- public String[] getKeyWords() {
- return this.keyWords;
- }
-
- public boolean getMatchComplete() {
- return this.matchWholeWords.getState();
- }
-
- public void titlesMain() {
- if (this.titles == null) {
- this.titles = new JDPChoice();
- }
-
- }
- }
-