import java.awt.BorderLayout; import java.awt.Color; import java.awt.Component; import java.awt.Cursor; import java.awt.Dimension; import java.awt.GridBagConstraints; import java.awt.GridBagLayout; import java.awt.HeadlessException; import java.awt.Insets; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.ItemEvent; import java.awt.event.ItemListener; import java.awt.event.KeyEvent; import java.awt.event.KeyListener; import java.io.UnsupportedEncodingException; import java.net.MalformedURLException; import java.net.URL; import java.util.Vector; import javax.swing.JApplet; import javax.swing.JButton; import javax.swing.JCheckBox; import javax.swing.JComboBox; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JTextField; import javax.swing.JTree; import javax.swing.event.PopupMenuEvent; import javax.swing.event.PopupMenuListener; import javax.swing.event.TreeSelectionEvent; import javax.swing.event.TreeSelectionListener; import javax.swing.tree.TreeSelectionModel; public class SearchTopic extends JApplet implements ActionListener,TreeSelectionListener,ItemListener,KeyListener,PopupMenuListener{ private ScienceTable[] sciences; private JButton searchButton; private JLabel andTextLabel = null; private JTextField andTextField = null; private JLabel searchPhraseLabel = null; private JTextField searchPhraseTextField = null; private JButton clearButton = null; private JLabel searchOrLabel = null; private JTextField searchOrTextField = null; private JLabel searchNotLabel = null; private JTextField searchNotTextField = null; private JLabel archiveLabel = null; private JComboBox archiveBox = null; private JComboBox archiveTypesBox; private JLabel languageLabel = null; private JComboBox languageBox; private JLabel topicLabel = new JLabel(""); private Vector acronymList = new Vector(); private Vector languagecodes = new Vector(); private Vector archiveTypes = new Vector(); private Vector archive = new Vector(); private JComboBox hitBox = null; private Vector hitList; private Color greenColor = new Color(0,102,51); private Color redColor = new Color(200,0,0); private Color blueColor = new Color(0,0,200); private boolean allTypes = true; private String[]typesAcronyms = {"all","uhr","ins","tid"}; JLabel fromLabel; JLabel toLabel; JComboBox fromBox,toBox; JLabel publishYearLabel; private JLabel topicHeader; JLabel emptyLabel = new JLabel(" "); JLabel listLabel = new JLabel(""); JLabel doctypeLabel = new JLabel(""); JComboBox doctypeBox = null; JCheckBox refereeCheckbox = null; JCheckBox fulltextCheckbox = null; ScienceTree tree = null; private String[] searchTemplates; public SearchTopic() throws HeadlessException { super(); } public void collapseAll(JTree tree) { int row = tree.getRowCount() - 1; while (row >= 0) { tree.collapseRow(row); row--; } } synchronized public void init(){ super.init(); // this.getContentPane().setBackground(new Color(200,200,200)); readSciences(); tree = new ScienceTree(sciences,this.getParameter("language"),TreeSelectionModel.DISCONTIGUOUS_TREE_SELECTION,this.getParameter("rootname"),this.getCodeBase()); tree.tree.addTreeSelectionListener(this); tree.setSize(tree.tree.getPreferredSize()); // tree.tree.setRootVisible(false); tree.tree.addKeyListener(this); JPanel components = createComponents(); JPanel componentPanel = new JPanel(); componentPanel.setBackground(new Color(255,255,255)); componentPanel.setLayout(new BorderLayout()); componentPanel.add(components, BorderLayout.NORTH); componentPanel.add(getSearchButtonPanel(),(BorderLayout.CENTER)); /* splitPane.setTopComponent(componentScrollPanel); splitPane.setBottomComponent(tree); splitPane.setDividerLocation(350); tree.setMinimumSize(minimumSize); this.getContentPane().add(splitPane);*/ this.getContentPane().add(componentPanel); setLastSearch(); this.setVisible(true); this.invalidate(); andTextField.requestFocus(); } private String[] getLastSearchParameters(String queryString,String delimiter){ int pos = 0; int cnt = 0; if(queryString.substring(queryString.length()-1).compareTo(delimiter)!=0) queryString = queryString + delimiter; while(true){ pos = queryString.indexOf(delimiter,pos); if(pos != -1){ cnt++; pos++; }else break; } String[] parmList = new String[cnt]; pos = -1; for(int temp=0;temp < cnt;temp++){ queryString = queryString.substring(pos+1); pos = queryString.indexOf(delimiter,0); parmList[temp] = queryString.substring(0,pos); } return parmList; } private void setLastSearch(){ String[] parmList; String key,value; String st = this.getParameter("querystring"); if(st == null || st.length() == 0) return; parmList = getLastSearchParameters(st,"&"); for(int temp = 0;temp < parmList.length;temp++){ int pos= parmList[temp].indexOf("="); key= parmList[temp].substring(0,pos); value = parmList[temp].substring(pos+1); if(key.compareTo("VDP")==0){ String[]codes = getLastSearchParameters(value,","); tree.setSelections(codes); } if(key.compareTo("SEARCH_AND")==0) andTextField.setText(value); if(key.compareTo("SEARCH_PHRASE")==0) searchPhraseTextField.setText(value); if(key.compareTo("SEARCH_OR")==0) searchOrTextField.setText(value); if(key.compareTo("SEARCH_NOT")==0) searchNotTextField.setText(value); if(key.compareTo("ARCHIVE") == 0){ for(int t = 0;t< acronymList.size();t++){ if(((String)acronymList.elementAt(t)).compareTo(value) == 0) archiveBox.setSelectedIndex(t+1); } } if(key.compareTo("LANGUAGE")==0){ for(int t = 0;t< languagecodes.size();t++){ if(((String)languagecodes.elementAt(t)).compareTo(value) == 0) languageBox.setSelectedIndex(t+1); } } if(key.compareTo("FROM")==0){ for(int t = 0;t< fromBox.getItemCount();t++){ if(((String)fromBox.getItemAt(t)).compareTo(value) == 0) fromBox.setSelectedIndex(t); } } if(key.compareTo("TO")==0){ for(int t = 0;t< toBox.getItemCount();t++){ if(((String)toBox.getItemAt(t)).compareTo(value) == 0) toBox.setSelectedIndex(t); } } if(key.compareTo("PAGESIZE")==0){ for(int t = 0; t < hitList.size();t++) if( ((String)hitList.elementAt(t)).compareTo(value)==0) hitBox.setSelectedIndex(t); } if(key.compareTo("REFEREE")==0){ allTypes = false; refereeCheckbox.setSelected(true); fillDocumentTypes(); } if(key.compareTo("FULLTEXT")==0){ fulltextCheckbox.setSelected(true); } if(key.compareTo("DOCUMENTTYPES")==0) setDocType(value); } } private void setDocType(String value){ for(int temp = 1; temp < searchTemplates.length;temp++) if(searchTemplates[temp].compareTo(value)==0){ doctypeBox.setSelectedIndex(temp); break; } } private void readSciences(){ String input =this.getParameter("sciencesize"); Integer i = new Integer(input); sciences = new ScienceTable[i.intValue()]; for(int temp = 0; temp < i.intValue();temp++){ input = this.getParameter("science"+temp); addScience(input,temp); } } private void addScience(String st, int index){ int pos = 0; ScienceTable table = new ScienceTable(); pos = st.indexOf(";"); table.code = st.substring(0,pos); st = st.substring(pos+1); pos = st.indexOf(";"); table.owner=st.substring(0,pos); st = st.substring(pos+1); pos = st.indexOf(";"); table.norwegianName = st.substring(0,pos); st=st.substring(pos+1); pos = st.indexOf(";"); table.englishName = st.substring(0,pos); table.count = new Integer(st.substring(pos+1)).intValue(); sciences[index] = table; } private void fillYearBox(JComboBox box){ Integer from = new Integer(this.getParameter("minimumyear")); Integer to = new Integer(this.getParameter("maximumyear")); for(int temp = from.intValue();temp <= to.intValue();temp++){ box.addItem(""+temp); } } private void fillArchiveBox(){ archiveBox.addItem(this.getParameter("allarchives")); String input =this.getParameter("archivesize"); Integer i = new Integer(input); for(int temp = 0;temp < i.intValue();temp++){ archive.add(this.getParameter("archive"+temp)); archiveBox.addItem(this.getParameter("archive"+temp)); acronymList.add(this.getParameter("acronym"+temp)); archiveTypes.add(this.getParameter("archivetypes"+temp)); } ComboBoxRenderer renderer = new ComboBoxRenderer(archiveBox); archiveBox.setRenderer(renderer); } private void fillArchiveTypesBox(){ String input =this.getParameter("archiveTypesize"); Integer i = new Integer(input); for(int temp = 0;temp < i.intValue();temp++){ archiveTypesBox.addItem(this.getParameter("archivetype"+temp)); } ComboBoxRenderer renderer = new ComboBoxRenderer(archiveTypesBox); archiveTypesBox.setRenderer(renderer); // archiveTypesBox.setSelectedIndex(0); } private void fillLanguageBox(){ String input; languageBox.addItem(this.getParameter("alllanguages")); input =this.getParameter("languagesize"); Integer i = new Integer(input); for(int temp = 0;temp < i.intValue();temp++){ input = this.getParameter("language"+temp); int pos = input.indexOf(";"); languageBox.addItem(input.substring(0,pos)); languagecodes.add(input.substring(pos+1)); } } private void fillDocumentTypes(){ String input; doctypeBox.removeAllItems(); doctypeBox.addItem(this.getParameter("doctypeAlllabel")); input = this.getParameter(allTypes?"doctypesize":"doctyperefereesize"); Integer i = new Integer(input); searchTemplates = new String[i.intValue()+1]; for(int temp = 0;temp < i.intValue();temp++){ if(allTypes) input = "doctypes"+temp; else input="doctypesref"+temp; input = this.getParameter(input); int pos = input.indexOf(";"); doctypeBox.addItem(input.substring(0,pos)); searchTemplates[temp+1]= new String(input.substring(pos+1)); } } private String getRealCodeBase(){ String st =getCodeBase().toString(); int pos = st.indexOf("Applet"); st = st.substring(0,pos); return st; } private void clearAll(){ tree.clearSelections(); andTextField.setText(""); searchOrTextField.setText(""); searchNotTextField.setText(""); searchPhraseTextField.setText(""); archiveBox.setSelectedIndex(0); fromBox.setSelectedIndex(0); toBox.setSelectedIndex(toBox.getItemCount()-1); languageBox.setSelectedIndex(0); if(refereeCheckbox.isSelected()){ refereeCheckbox.setSelected(false); allTypes=true; fillDocumentTypes(); } doctypeBox.setSelectedIndex(0); } public void actionPerformed(ActionEvent e) { // TODO Auto-generated method stub if(e.getSource() == searchButton){ callSearchURL(); } if(e.getSource() == fromBox || e.getSource() == toBox){ Integer i = new Integer(fromBox.getSelectedItem().toString()); Integer x = new Integer(fromBox.getSelectedItem().toString()); if(i.intValue() == -1 || x.intValue() == -1) return; if(x.intValue() < i.intValue()) toBox.setSelectedIndex(fromBox.getSelectedIndex()); } if(e.getSource() == clearButton) clearAll(); if(e.getSource() == refereeCheckbox){ allTypes = refereeCheckbox.isSelected()?false:true; fillDocumentTypes(); } } private void archiveTypeSelected(){ if(archiveBox == null) return; archiveBox.removeAllItems(); archiveBox.addItem(this.getParameter("allarchives")); if(archiveTypesBox.getSelectedIndex() == 0){ for(int temp = 0;temp < archive.size();temp++) archiveBox.addItem( archive.elementAt(temp)); }else{ for(int i = 0;i < archive.size();i++){ if(typesAcronyms[archiveTypesBox.getSelectedIndex()].compareTo((String) archiveTypes.elementAt(i)) ==0) archiveBox.addItem(archive.elementAt(i)); } } } private String convertUTF8(String st){ byte[] b = null; String n; try { b = st.getBytes("UTF-8"); } catch (UnsupportedEncodingException e) { System.out.println(e.toString()); return ""; } n = urlencoding(b); return n; } private String urlencoding(byte[] b){ StringBuffer result = new StringBuffer(); for (int i = 0; i < b.length; i++) { int k = b[i] & 0xFF; if(k > 128){ result.append('%'); if (k < 0x10) result.append('0'); result.append(Integer.toHexString(k)); }else{ if(k == 32) result.append('+'); else result.append((char)b[i]); } } return result.toString(); } private void callSearchURL(){ this.setCursor(new Cursor(Cursor.WAIT_CURSOR)); String endParm = ""; String newURL = getRealCodeBase()+"result.html?"; String parm = tree.getSelections(); if(parm != null && parm.length() > 0) endParm += "VDP="+parm+"&"; parm= andTextField.getText(); if(parm != null && parm.length() > 0) endParm += "SEARCH_AND="+convertUTF8(parm)+"&"; parm= searchPhraseTextField.getText(); if(parm != null && parm.length() > 0) endParm += "SEARCH_PHRASE="+convertUTF8(parm)+"&"; parm= searchOrTextField.getText(); if(parm != null && parm.length() > 0) endParm += "SEARCH_OR="+convertUTF8(parm)+"&"; parm= searchNotTextField.getText(); if(parm != null && parm.length() > 0) endParm += "SEARCH_NOT="+convertUTF8(parm)+"&"; if(archiveBox.getSelectedIndex() > 0) // endParm += "ARCHIVE="+acronymList.elementAt(archiveBox.getSelectedIndex()-1)+"&"; endParm += "ARCHIVE="+convertUTF8(qSearchInArchive())+"&"; if(archiveTypesBox.getSelectedIndex() > 0 && archiveBox.getSelectedIndex() == 0) endParm += "ARCHIVETYPE="+ typesAcronyms[archiveTypesBox.getSelectedIndex()] + "&"; if(fromBox.getSelectedIndex() != 0 || toBox.getSelectedIndex() != toBox.getItemCount()-1){ endParm +="FROM="+fromBox.getSelectedItem() + "&"; endParm +="TO="+toBox.getSelectedItem() + "&"; } if(languageBox.getSelectedIndex() > 0) endParm += "LANGUAGE="+languagecodes.elementAt(languageBox.getSelectedIndex()-1)+"&"; // endParm += "PAGESIZE="+ hitBox.getSelectedItem().toString().substring(0,2)+"&"; endParm += "PAGESIZE=" + hitList.elementAt(hitBox.getSelectedIndex()) + "&"; endParm += "SEARCHMODE=TOPIC&"; if(doctypeBox.getSelectedIndex() > 0) endParm += "DOCUMENTTYPES="+convertUTF8(searchTemplates[doctypeBox.getSelectedIndex()])+"&"; // endParm += "DOCUMENTTYPES="+searchTemplates[doctypeBox.getSelectedIndex()]+"&"; if(refereeCheckbox.isSelected()) endParm += "REFEREE=true&"; if(fulltextCheckbox.isSelected()) endParm += "FULLTEXT=true&"; newURL += endParm; try { getAppletContext().showDocument(new URL(newURL)); } catch (MalformedURLException e1) { // TODO Auto-generated catch block topicLabel.setText(e1.toString()); } this.setCursor(new Cursor(Cursor.DEFAULT_CURSOR)); } private String qSearchInArchive(){ String st = (String) archiveBox.getSelectedItem(); for(int temp = 0;temp < archive.size();temp++){ if(st.compareTo((String) archive.elementAt(temp)) ==0) return (String) (acronymList.elementAt(temp)); } return ""; } public void valueChanged(TreeSelectionEvent e) { fillTopicLabel(); } public void fillTopicLabel(){ topicLabel.setText(this.getParameter("topiclabel") + " " + tree.getNamedSelections()); } public void itemStateChanged(ItemEvent e) { if((e.getSource() == fromBox || e.getSource() == toBox) && e.getStateChange() == ItemEvent.SELECTED ){ Integer i = new Integer(fromBox.getSelectedItem().toString()); Integer x = new Integer(toBox.getSelectedItem().toString()); if(i.intValue() == -1 || x.intValue() == -1) return; if(x.intValue() < i.intValue()) toBox.setSelectedIndex(fromBox.getSelectedIndex()); } if(e.getSource() == archiveTypesBox && e.getStateChange() == ItemEvent.SELECTED) archiveTypeSelected(); // TODO Auto-generated method stub } private JPanel getSearchButtonPanel(){ GridBagConstraints gbc = new GridBagConstraints(); GridBagLayout b = new GridBagLayout(); Insets insets = new Insets(5,5,5,5); JPanel panel = new JPanel(); panel.setLayout(b); gbc.gridy = 0; gbc.gridx = 0; gbc.gridwidth= 4; gbc.anchor = GridBagConstraints.WEST; gbc.weightx = 1.0; topicLabel.setText(this.getParameter("topiclabel")); // topicLabel = new JLabel(this.getParameter("topiclabel")); topicLabel.setForeground(greenColor); topicLabel.setPreferredSize(new Dimension(900,16)); panel.add(topicLabel,gbc); hitBox = new JComboBox(); hitBox.setBackground(Color.WHITE); String hits = this.getParameter("hits"); hitList = new Vector(); hitBox.addItem("10 "+hits); hitBox.addItem("20 "+hits); hitBox.addItem("30 "+hits); hitBox.addItem("50 "+hits); hitBox.addItem("100 "+hits); hitBox.setSelectedIndex(hitBox.getItemCount()-2); hitList.add("10"); hitList.add("20"); hitList.add("30"); hitList.add("50"); hitList.add("100"); panel.setBackground(new Color(255,255,255)); gbc.ipady = 0; gbc.gridx= 0; gbc.insets = insets; gbc.weightx = 0; gbc.gridwidth = 1; gbc.gridwidth = 1; gbc.gridy =1; gbc.anchor = GridBagConstraints.WEST; searchButton = new JButton(this.getParameter("searchbutton")); searchButton.addActionListener(this); searchButton.setBackground(Color.WHITE); panel.add(searchButton,gbc); clearButton = new JButton(this.getParameter("resetbutton")); clearButton.addActionListener(this); clearButton.setBackground(Color.WHITE); gbc.gridx = 1; panel.add(clearButton,gbc); gbc.gridx = 2; gbc.anchor = GridBagConstraints.WEST; panel.add(hitBox,gbc); gbc.gridx=3; gbc.anchor= GridBagConstraints.WEST; fulltextCheckbox = new JCheckBox(this.getParameter("fulltext")); fulltextCheckbox.setBackground(Color.WHITE); fulltextCheckbox.setSelected(false); panel.add(fulltextCheckbox,gbc); return panel; } private JPanel createComponents(){ GridBagConstraints gbc = new GridBagConstraints(); GridBagLayout b = new GridBagLayout(); Insets insets = new Insets(5,5,5,5); JPanel panel = new JPanel(); panel.setLayout(b); panel.setBackground(new Color(238,238,238)); //linie 0 tomme kolonner og header for emneliste panel.setBackground(new Color(255,255,255)); gbc.ipady = 0; gbc.gridx= 0; gbc.gridy = 0; gbc.insets = insets; gbc.weightx = 0; gbc.weighty = 0; gbc.gridwidth = 1; gbc.anchor = GridBagConstraints.WEST; //test panel.add(emptyLabel,gbc); // gbc.gridwidth = 4; gbc.gridwidth = 5; // gbc.gridx = 1; gbc.gridx = 0; panel.add(emptyLabel,gbc); // panel.add(listLabel,gbc); gbc.gridwidth = 1; topicHeader = new JLabel(this.getParameter("topicheader")); topicHeader.setForeground(new Color(0,102,51)); gbc.weightx = 1; gbc.gridx = 5; gbc.gridheight = 1; panel.add(topicHeader,gbc); // -----------------------------emnelisten gbc.anchor = GridBagConstraints.NORTHWEST; gbc.gridy =1; gbc.gridx = 5; gbc.gridheight= 8; gbc.gridwidth = 1; gbc.weightx =0; insets.bottom = 2; insets.left = 2; insets.right =2; insets.top = 2; panel.add(tree,gbc); insets.top=5; insets.left =5; insets.bottom = 5; insets.right =5; //emne slutt gbc.ipady = 2; gbc.weighty = 0.1; //linie 1 searchand field gbc.anchor = GridBagConstraints.WEST; gbc.weightx = 0; gbc.gridy = 1; gbc.gridheight = 1; gbc.gridwidth = 1; gbc.gridx = 0; andTextLabel = new JLabel(this.getParameter("SEARCH_AND")); panel.add(andTextLabel,gbc); gbc.gridx = 1; gbc.gridwidth = 4; andTextField = new JTextField(); andTextField.setPreferredSize(new Dimension(250,20)); andTextField.addKeyListener(this); panel.add(andTextField,gbc); //search phrase linie 2 gbc.gridy= 2; gbc.gridx =0; gbc.gridwidth = 1; gbc.gridheight =1; searchPhraseLabel = new JLabel(this.getParameter("SEARCH_PHRASE")); panel.add(searchPhraseLabel,gbc); gbc.gridx = 1; gbc.gridwidth = 4; searchPhraseTextField = new JTextField(); searchPhraseTextField.setPreferredSize(new Dimension(250,20)); searchPhraseTextField.addKeyListener(this); gbc.gridx = 1; panel.add(searchPhraseTextField,gbc); // search or linie 3 gbc.gridy= 3; gbc.gridx =0; gbc.gridwidth = 1; gbc.gridheight =1; gbc.weightx =0; searchOrLabel = new JLabel(this.getParameter("SEARCH_OR")); panel.add(searchOrLabel,gbc); gbc.gridx = 1; gbc.gridwidth = 4; searchOrTextField = new JTextField(); searchOrTextField.setPreferredSize(new Dimension(250,20)); searchOrTextField.addKeyListener(this); panel.add(searchOrTextField,gbc); //search not linie 4 gbc.gridy= 4; gbc.gridx =0; gbc.gridwidth = 1; gbc.gridheight =1; gbc.weightx =0; searchNotLabel = new JLabel(this.getParameter("SEARCH_NOT")); panel.add(searchNotLabel,gbc); gbc.gridx = 1; gbc.gridwidth = 4; searchNotTextField = new JTextField(); searchNotTextField.setPreferredSize(new Dimension(250,20)); searchNotTextField.addKeyListener(this); panel.add(searchNotTextField,gbc); gbc.ipady=0; // arkiv linie 5 gbc.gridx= 0; gbc.gridy = 5; gbc.gridwidth = 1; gbc.weightx =0; // archiveLabel = new JLabel(this.getParameter("archivelabel")); // panel.add(archiveLabel,gbc); archiveTypesBox = new JComboBox(); archiveTypesBox.addItemListener(this); archiveTypesBox.setMaximumRowCount(4); archiveTypesBox.setBackground(Color.WHITE); archiveTypesBox.setPreferredSize(new Dimension(160,22)); archiveTypesBox.addActionListener(this); panel.add(archiveTypesBox,gbc); fillArchiveTypesBox(); gbc.gridx = 1; gbc.gridwidth = 4; archiveBox = new JComboBox(); archiveBox.addPopupMenuListener(this); archiveBox.setPreferredSize(new Dimension(250,24)); archiveBox.setMaximumRowCount(7); archiveBox.setBackground(Color.WHITE); archiveBox.addItemListener(this); panel.add(archiveBox,gbc); fillArchiveBox(); //utgivelser linie 6 gbc.gridy = 6; gbc.gridx = 0; gbc.gridwidth = 1; gbc.weightx =0; publishYearLabel = new JLabel(this.getParameter("publishyearlabel")); panel.add(publishYearLabel,gbc); gbc.gridx = 1; fromLabel = new JLabel(this.getParameter("fromyear")); panel.add(fromLabel,gbc); gbc.gridx=2; fromBox = new JComboBox(); fromBox.setBackground(Color.WHITE); fillYearBox(fromBox); panel.add(fromBox,gbc); gbc.gridx=3; toLabel = new JLabel(this.getParameter("toyear")); panel.add(toLabel,gbc); gbc.gridx=4; toBox = new JComboBox(); toBox.setBackground(Color.WHITE); fillYearBox(toBox); toBox.addKeyListener(this); fromBox.setSelectedIndex(0); toBox.setSelectedIndex(toBox.getItemCount()-1); panel.add(toBox,gbc); fromBox.addItemListener(this); toBox.addItemListener(this); fromBox.addActionListener(this); toBox.addActionListener(this); //spraak linie 7 gbc.gridy = 7; gbc.gridx = 0; languageLabel = new JLabel(this.getParameter("languagelabel")); panel.add(languageLabel,gbc); //---------- gbc.gridx = 1; gbc.gridwidth = 4; languageBox = new JComboBox(); languageBox.setBackground(Color.WHITE); languageBox.addKeyListener(this); fillLanguageBox(); panel.add(languageBox,gbc); //----------- //dokumenttyper linie 8 gbc.gridy= 8; gbc.gridx=0; gbc.gridwidth=1; doctypeLabel.setText(this.getParameter("doctypelabel")); panel.add(doctypeLabel,gbc); //------- gbc.gridx = 1; gbc.gridwidth = 4; doctypeBox = new JComboBox(); doctypeBox.setBackground(Color.WHITE); doctypeBox.setPreferredSize(new Dimension(240,24)); fillDocumentTypes(); panel.add(doctypeBox,gbc); fillDocumentTypes(); panel.add(doctypeBox,gbc); //-------- gbc.gridx=5; gbc.gridwidth = 1; refereeCheckbox = new JCheckBox(this.getParameter("referee")); refereeCheckbox.setBackground(Color.WHITE); refereeCheckbox.setSelected(false); panel.add(refereeCheckbox,gbc); refereeCheckbox.addActionListener(this); /* gbc.gridx=6; fulltextCheckbox = new JCheckBox(this.getParameter("fulltext")); fulltextCheckbox.setBackground(Color.WHITE); fulltextCheckbox.setSelected(false); panel.add(fulltextCheckbox,gbc); */ return panel; } public void keyTyped(KeyEvent arg0) { // TODO Auto-generated method stub } public void keyPressed(KeyEvent arg0) { // TODO Auto-generated method stub } public void keyReleased(KeyEvent e) { if(e.getKeyChar() == KeyEvent.VK_ENTER){ callSearchURL(); } } public void popupMenuWillBecomeVisible(PopupMenuEvent arg0) { // tempBuffer = topicLabel.getText(); ((ComboBoxRenderer)archiveBox.getRenderer()).setLabelToInsert(topicLabel); topicLabel.setForeground(blueColor); } public void popupMenuWillBecomeInvisible(PopupMenuEvent e) { topicLabel.setForeground(greenColor); fillTopicLabel(); } public void popupMenuCanceled(PopupMenuEvent arg0) { // TODO Auto-generated method stub } }