import IDLInterchange.*; import CosPropertyService.*; import ACM.*; import java.io.*; import java.awt.*; public class ACMGUI extends Frame { private org.omg.CORBA.ORB orb; private IDLInterchange.CConstrainCollection proxy; private IDLInterchange.CCollection pResultTarget; private boolean HaveItems = false; private int total = 0; private IDLInterchange.TItemsACState objects; private ResultImpl ResultThread; private String[] whatprop = new String[20]; private short how_many_prop; private short MyMessageID = 0; private short[] clientcookies = new short[100]; private short longclcookies = 0; private String status = "Disconnected"; private String maxhits = "5"; private USMarc lusmarc = new USMarc(); public ACMGUI() { setLayout(null); setVisible(false); setSize(insets().left + insets().right + 595,insets().top + insets().bottom + 743); setBackground(new Color(12632256)); openFileDialog1 = new java.awt.FileDialog(this); openFileDialog1.setMode(FileDialog.LOAD); openFileDialog1.setTitle("Open"); label3D1 = new java.awt.Label(); label3D1.setText("Infobus - Visigenic GUI"); label3D1.setBounds(insets().left + 144,insets().top + 12,276,40); label3D1.setFont(new Font("Dialog", Font.BOLD, 24)); add(label3D1); list1 = new java.awt.List(0,false); list1.addItem("ACM Proxy"); add(list1); list1.setBounds(insets().left + 48,insets().top + 96,204,72); list1.setBackground(new Color(16777215)); label1 = new java.awt.Label("List of Proxies"); label1.setBounds(insets().left + 108,insets().top + 60,84,40); label1.setFont(new Font("Dialog", Font.BOLD, 12)); add(label1); label2 = new java.awt.Label("Properties"); label2.setBounds(insets().left + 396,insets().top + 60,60,40); label2.setFont(new Font("Dialog", Font.BOLD, 12)); add(label2); checkbox1 = new java.awt.Checkbox("Title"); checkbox1.setBounds(insets().left + 312,insets().top + 96,100,40); add(checkbox1); checkbox1.setState(true); checkbox2 = new java.awt.Checkbox("Author"); checkbox2.setBounds(insets().left + 432,insets().top + 96,100,40); add(checkbox2); checkbox2.setState(true); checkbox3 = new java.awt.Checkbox("Abstract"); checkbox3.setBounds(insets().left + 492,insets().top + 132,100,40); add(checkbox3); checkbox4 = new java.awt.Checkbox("URL1"); checkbox4.setBounds(insets().left + 312,insets().top + 144,100,40); add(checkbox4); checkbox5 = new java.awt.Checkbox("Transcript URL"); checkbox5.setBounds(insets().left + 432,insets().top + 144,100,40); add(checkbox5); textArea1 = new java.awt.TextArea(); textArea1.setText(""); textArea1.setEditable(false); textArea1.setBounds(insets().left + 24,insets().top + 372,552,358); add(textArea1); button1 = new java.awt.Button(); button1.setActionCommand("button"); button1.setLabel("Connect"); button1.setBounds(insets().left + 12,insets().top + 324,60,40); button1.setFont(new Font("Dialog", Font.BOLD, 12)); button1.setBackground(new Color(12632256)); add(button1); button2 = new java.awt.Button(); button2.setActionCommand("button"); button2.setLabel("Prop. Names"); button2.setBounds(insets().left + 84,insets().top + 324,84,40); button2.setFont(new Font("Dialog", Font.BOLD, 12)); button2.setBackground(new Color(12632256)); add(button2); button3 = new java.awt.Button(); button3.setActionCommand("button"); button3.setLabel("Search"); button3.setBounds(insets().left + 180,insets().top + 324,60,40); button3.setFont(new Font("Dialog", Font.BOLD, 12)); button3.setBackground(new Color(12632256)); add(button3); button4 = new java.awt.Button(); button4.setActionCommand("button"); button4.setLabel("Total items"); button4.setBounds(insets().left + 252,insets().top + 324,72,40); button4.setFont(new Font("Dialog", Font.BOLD, 12)); button4.setBackground(new Color(12632256)); add(button4); button5 = new java.awt.Button(); button5.setActionCommand("button"); button5.setLabel("Get items"); button5.setBounds(insets().left + 336,insets().top + 324,60,40); button5.setFont(new Font("Dialog", Font.BOLD, 12)); button5.setBackground(new Color(12632256)); add(button5); button6 = new java.awt.Button(); button6.setActionCommand("button"); button6.setLabel("R. more items"); button6.setBounds(insets().left + 408,insets().top + 324,84,40); button6.setFont(new Font("Dialog", Font.BOLD, 12)); button6.setBackground(new Color(12632256)); add(button6); button7 = new java.awt.Button(); button7.setActionCommand("button"); button7.setLabel("R. more prop"); button7.setBounds(insets().left + 504,insets().top + 324,84,40); button7.setFont(new Font("Dialog", Font.BOLD, 12)); button7.setBackground(new Color(12632256)); add(button7); label3 = new java.awt.Label(" Query: especify a list of keywords"); label3.setBounds(insets().left + 12,insets().top + 252,204,40); label3.setFont(new Font("Dialog", Font.BOLD, 12)); add(label3); textField1 = new java.awt.TextField(); textField1.setText(""); textField1.setBounds(insets().left + 220,insets().top + 262,360,20); add(textField1); label4 = new java.awt.Label("Status:"); label4.setBounds(insets().left + 48,insets().top + 180,48,40); label4.setFont(new Font("Dialog", Font.ITALIC, 12)); add(label4); textField2 = new java.awt.TextField(); textField2.setEditable(false); textField2.setText(status); textField2.setBounds(insets().left + 96,insets().top + 192,100,24); textField2.setFont(new Font("Dialog", Font.ITALIC, 12)); add(textField2); label5 = new java.awt.Label("Max hits:"); label5.setBounds(insets().left + 400,insets().top + 180, 60,40); label5.setFont(new Font("Dialog", Font.BOLD, 12)); add(label5); textField3 = new java.awt.TextField(); textField3.setText(maxhits); textField3.setBounds(insets().left + 460,insets().top + 190, 40,20); add(textField3); setTitle("ACM Proxy GUI"); mainMenuBar = new java.awt.MenuBar(); menu1 = new java.awt.Menu("File"); miNew = new java.awt.MenuItem("New"); menu1.add(miNew); miOpen = new java.awt.MenuItem("Open..."); menu1.add(miOpen); miSave = new java.awt.MenuItem("Save"); menu1.add(miSave); miSaveAs = new java.awt.MenuItem("Save As..."); menu1.add(miSaveAs); menu1.addSeparator(); miExit = new java.awt.MenuItem("Exit"); menu1.add(miExit); mainMenuBar.add(menu1); menu3 = new java.awt.Menu("Help"); mainMenuBar.setHelpMenu(menu3); miAbout = new java.awt.MenuItem("About.."); menu3.add(miAbout); mainMenuBar.add(menu3); setMenuBar(mainMenuBar); SymWindow aSymWindow = new SymWindow(); this.addWindowListener(aSymWindow); SymAction lSymAction = new SymAction(); button1.addActionListener(lSymAction); button2.addActionListener(lSymAction); button3.addActionListener(lSymAction); button4.addActionListener(lSymAction); button5.addActionListener(lSymAction); button6.addActionListener(lSymAction); button7.addActionListener(lSymAction); miAbout.addActionListener(lSymAction); miExit.addActionListener(lSymAction); // Initialize the ORB. String[] args = new String[0]; orb = org.omg.CORBA.ORB.init(args,null); //Creating the thread for the result collection ResultThread = new ResultImpl(0,"ResultTarget"); } public ACMGUI(String title) { this(); setTitle(title); } public synchronized void show() { move(50, 50); super.show(); } public static void main(String args[]) { (new ACMGUI()).show(); } public void addNotify() { Dimension d = getSize(); super.addNotify(); if (fComponentsAdjusted) return; setSize(insets().left + insets().right + d.width, insets().top + insets().bottom + d.height); Component components[] = getComponents(); for (int i = 0; i < components.length; i++) { Point p = components[i].getLocation(); p.translate(insets().left, insets().top); components[i].setLocation(p); } fComponentsAdjusted = true; } boolean fComponentsAdjusted = false; java.awt.FileDialog openFileDialog1; java.awt.Label label3D1; java.awt.List list1; java.awt.Label label1; java.awt.Label label2; java.awt.Checkbox checkbox1; java.awt.Checkbox checkbox2; java.awt.Checkbox checkbox3; java.awt.Checkbox checkbox4; java.awt.Checkbox checkbox5; java.awt.TextArea textArea1; java.awt.Button button1; java.awt.Button button2; java.awt.Button button3; java.awt.Button button4; java.awt.Button button5; java.awt.Button button6; java.awt.Button button7; java.awt.Label label3; java.awt.TextField textField1; java.awt.Label label4; java.awt.TextField textField2; java.awt.Label label5; java.awt.TextField textField3; java.awt.MenuBar mainMenuBar; java.awt.Menu menu1; java.awt.MenuItem miNew; java.awt.MenuItem miOpen; java.awt.MenuItem miSave; java.awt.MenuItem miSaveAs; java.awt.MenuItem miExit; java.awt.Menu menu3; java.awt.MenuItem miAbout; class SymWindow extends java.awt.event.WindowAdapter { public void windowClosing(java.awt.event.WindowEvent event) { Object object = event.getSource(); if (object == ACMGUI.this) Frame1_WindowClosing(event); } } void Frame1_WindowClosing(java.awt.event.WindowEvent event) { hide(); // hide the Frame dispose(); // free the system resources System.exit(0); // close the application } class SymAction implements java.awt.event.ActionListener { public void actionPerformed(java.awt.event.ActionEvent event) { Object object = event.getSource(); if (object == miExit) miExit_Action(event); else if (object == miAbout) miAbout_Action(event); else if (object == button1) miConnect_Action(event); else if (object == button2) miPropNames_Action(event); else if (object == button3) miSearch_Action(event); else if (object == button4) miTotalItems_Action(event); else if (object == button5) miGetItems_Action(event); else if (object == button6) miRMoreItems_Action(event); else if (object == button7) miRMoreProp_Action(event); textField2.setText(status); } } void miConnect_Action(java.awt.event.ActionEvent event) { textArea1.append("\nConnecting....."); if (status.equalsIgnoreCase("disconnected")) { GetResultTarget(); testGetItemsPropertyNames("nothing"); status = "connected"; } else { textArea1.append("\nAlready connected!!"); } return; } void miPropNames_Action(java.awt.event.ActionEvent event) { if (pResultTarget != null ) { textArea1.append("\nGet Property Names\n"); testGetItemsPropertyNames(""); } else { textArea1.append("Not connected!!\n"); } } void miSearch_Action(java.awt.event.ActionEvent event) { if (pResultTarget != null ) { textArea1.append("\nSearch\n"); ResultThread.pobjects = 1; if ( textField1.getText().equalsIgnoreCase("") ) { textArea1.append("No keywords espcified\n"); return; } String keywords = textField1.getText(); if ( textField3.getText().equalsIgnoreCase("") ) { maxhits = "5"; } else { maxhits = textField3.getText(); } WhatProperties(); HaveItems = false; total = 0; testRequestConstrain(keywords, maxhits); textArea1.append("Query submitted\n"); ResultThread.completed = false; ResultThread.total = 0; status = "query sub."; } else { textArea1.append("Not connected!!\n"); } } void miTotalItems_Action(java.awt.event.ActionEvent event) { if (pResultTarget != null ) { textArea1.append("\nGet Total Items\n"); textField1.setText(""); testGetTotalItems(); status = "got total"; } else { textArea1.append("Not connected!!\n"); } } void miGetItems_Action(java.awt.event.ActionEvent event) { if (pResultTarget != null ) { if ( ResultThread.completed) { textArea1.setText(""); textField1.setText(""); textArea1.append("\nGet Items\n"); PrintObjects(); status = "got items"; } else { textArea1.append("Transaction not completed\n"); } } else { textArea1.append("Not connected!!\n"); } } void miRMoreItems_Action(java.awt.event.ActionEvent event) { if (pResultTarget != null ) { textArea1.append("\nRequest More Items\n"); String stringcookie = textField1.getText(); if ( stringcookie.equalsIgnoreCase("") ) { textArea1.append("\nEspecify cookie in keywords field"); return; } if ( textField3.getText().equalsIgnoreCase("") ) { maxhits = "5"; } else { maxhits = textField3.getText(); } WhatProperties(); testRequestItems(stringcookie, Integer.valueOf(maxhits).intValue()); ResultThread.total = 0; status = "r. more items"; } else { textArea1.append("Not connected!!\n"); } } void miRMoreProp_Action(java.awt.event.ActionEvent event) { if (pResultTarget != null ) { textArea1.append("\nRequest More Properties\n"); WhatProperties(); select_docs(); testRequestItemsProperties(); status = "r. more prop"; } else { textArea1.append("Not connected!!\n"); } } void miAbout_Action(java.awt.event.ActionEvent event) { (new AboutDialog(this, true)).show(); } void miExit_Action(java.awt.event.ActionEvent event) { (new QuitDialog(this, true)).show(); } // Code for Infobus public void testGetTotalItems() { textArea1.append("\nTotal Items in the result collection:" + pResultTarget.GetTotalItems()); return; } public void testRequestItemsProperties() { //Setting pMessageID CosPropertyService.Any pMessageID = new CosPropertyService.Any(); ResultThread.current_MessageID = MyMessageID; pMessageID.a_short(MyMessageID++); //Setting pPropertyNames java.lang.String[] pPropertyNames = new java.lang.String[how_many_prop]; for(int jj=0;jj