/*********************************************************************** This file is part of KEEL-software, the Data Mining tool for regression, classification, clustering, pattern mining and so on. Copyright (C) 2004-2010 F. Herrera (herrera@decsai.ugr.es) L. S�nchez (luciano@uniovi.es) J. Alcal�-Fdez (jalcala@decsai.ugr.es) S. Garc�a (sglopez@ujaen.es) A. Fern�ndez (alberto.fernandez@ujaen.es) J. Luengo (julianlm@decsai.ugr.es) This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/ **********************************************************************/ /** * * File: HelpOptions.java * * A class for managing options for help * * @author Written by Admin 4/8/2010 * @version 1.0 * @since JDK1.5 */ package keel.GraphInterKeel.help; import java.awt.*; import javax.swing.*; import javax.swing.tree.*; import javax.swing.event.*; import java.awt.event.*; import java.util.Vector; public class HelpOptions extends JPanel { BorderLayout borderLayout1 = new BorderLayout(); JTabbedPane jTabbedPane1 = new JTabbedPane(); JPanel contenido = new JPanel(); JPanel indice = new JPanel(); BorderLayout borderLayout2 = new BorderLayout(); JScrollPane jScrollPane1 = new JScrollPane(); JList lista = new JList(); JPanel jPanel1 = new JPanel(); BorderLayout borderLayout3 = new BorderLayout(); JLabel jLabel1 = new JLabel(); JTextField texto = new JTextField(); JScrollPane jScrollPane2; BorderLayout borderLayout4 = new BorderLayout(); JTree arbol; DefaultMutableTreeNode top; HelpFrame padre; JButton busca = new JButton(); /** * Builder * * @param v Parent frame */ public HelpOptions(HelpFrame v) { try { padre = v; initializeHelpOptions(); } catch (Exception ex) { ex.printStackTrace(); } } /** * Initialize help options * * @throws java.lang.Exception */ public void initializeHelpOptions() throws Exception { this.setLayout(borderLayout1); indice.setLayout(borderLayout2); jPanel1.setLayout(borderLayout3); jLabel1.setFont(new java.awt.Font("Arial", 0, 11)); jLabel1.setText("Search for:"); texto.setFont(new java.awt.Font("Arial", 0, 11)); texto.setText(""); texto.addActionListener(new OpcionesAyuda_texto_actionAdapter(this)); contenido.setLayout(borderLayout4); borderLayout2.setHgap(0); borderLayout2.setVgap(10); borderLayout3.setHgap(3); borderLayout3.setVgap(10); top = new DefaultMutableTreeNode("Help"); arbol = new JTree(top); arbol.addTreeSelectionListener(new OpcionesAyuda_arbol_treeSelectionAdapter(this)); busca.setText(""); busca.setFont(new java.awt.Font("Arial", 0, 11)); busca.setMaximumSize(new Dimension(24, 24)); busca.setMinimumSize(new Dimension(24, 24)); busca.setPreferredSize(new Dimension(24, 24)); busca.setIcon(new ImageIcon(this.getClass().getResource("/keel/GraphInterKeel/resources/ico/help/busca.gif"))); busca.addActionListener(new OpcionesAyuda_busca_actionAdapter(this)); lista.addListSelectionListener(new OpcionesAyuda_lista_listSelectionAdapter(this)); lista.setFont(new java.awt.Font("Arial", 0, 11)); lista.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); arbol.setFont(new java.awt.Font("Arial", 0, 11)); jTabbedPane1.setFont(new java.awt.Font("Arial", 0, 11)); this.setFont(new java.awt.Font("Arial", 0, 11)); contenido.setFont(new java.awt.Font("Arial", 0, 11)); indice.setFont(new java.awt.Font("Arial", 0, 11)); jScrollPane1.setFont(new java.awt.Font("Arial", 0, 11)); jPanel1.setFont(new java.awt.Font("Arial", 0, 11)); this.add(jTabbedPane1, BorderLayout.CENTER); jTabbedPane1.add(contenido, "Content"); jScrollPane2 = new JScrollPane(arbol); jScrollPane2.setFont(new java.awt.Font("Arial", 0, 11)); contenido.add(jScrollPane2, BorderLayout.CENTER); jScrollPane2.getViewport().add(arbol, null); jTabbedPane1.add(indice, "Index"); indice.add(jScrollPane1, BorderLayout.CENTER); jScrollPane1.getViewport().add(lista, null); indice.add(jPanel1, BorderLayout.NORTH); jPanel1.add(jLabel1, BorderLayout.NORTH); jPanel1.add(texto, BorderLayout.CENTER); jPanel1.add(busca, BorderLayout.EAST); // Tree options DefaultTreeCellRenderer renderer1 = new DefaultTreeCellRenderer(); renderer1.setClosedIcon(new ImageIcon(this.getClass().getResource("/keel/GraphInterKeel/resources/ico/help/libro1.gif"))); renderer1.setOpenIcon(new ImageIcon(this.getClass().getResource("/keel/GraphInterKeel/resources/ico/help/libro2.gif"))); renderer1.setLeafIcon(new ImageIcon(this.getClass().getResource("/keel/GraphInterKeel/resources/ico/help/fich_ayuda.gif"))); arbol.setCellRenderer(renderer1); arbol.expandRow(0); } /** * Manages events in tree * * @param e Event */ public void arbol_valueChanged(TreeSelectionEvent e) { // Show help file associated to the item DefaultMutableTreeNode nodo = (DefaultMutableTreeNode) arbol.getLastSelectedPathComponent(); if (nodo != null) { Object o = nodo.getUserObject(); if (nodo.isLeaf()) { HelpSheet h = (HelpSheet) o; padre.contenido.muestraURL(h.adress); // Clear selection lista.clearSelection(); } } } /** * Search event * * @param e Event */ public void busca_actionPerformed(ActionEvent e) { // Show help themes if (texto.getText().length() == 0) { JOptionPane.showMessageDialog(padre, "There is nothing to search", "Info", 1); } else { Vector v = new Vector(); for (int i = 0; i < padre.temas.size(); i++) { HelpSheet a = (HelpSheet) padre.temas.elementAt(i); if (a.toString().toLowerCase().indexOf(texto.getText().toLowerCase()) != -1) { v.addElement(padre.temas.elementAt(i)); } } lista.setListData(v); } } /** * Manages changes in list * * @param e Event */ public void lista_valueChanged(ListSelectionEvent e) { // Show help file if (lista.getSelectedIndex() != -1) { HelpSheet h = (HelpSheet) lista.getSelectedValue(); padre.contenido.muestraURL(h.adress); // Clear tree selection arbol.setSelectionPath(null); } } /** * Manages changes in text * * @param e Event */ public void texto_actionPerformed(ActionEvent e) { // Show help themes if (texto.getText().length() == 0) { JOptionPane.showMessageDialog(padre, "There are nothing to search", "Info", 1); } else { Vector v = new Vector(); for (int i = 0; i < padre.temas.size(); i++) { HelpSheet a = (HelpSheet) padre.temas.elementAt(i); if (a.toString().toLowerCase().indexOf(texto.getText().toLowerCase()) != -1) { v.addElement(padre.temas.elementAt(i)); } } lista.setListData(v); } } } class OpcionesAyuda_arbol_treeSelectionAdapter implements javax.swing.event.TreeSelectionListener { HelpOptions adaptee; OpcionesAyuda_arbol_treeSelectionAdapter(HelpOptions adaptee) { this.adaptee = adaptee; } public void valueChanged(TreeSelectionEvent e) { adaptee.arbol_valueChanged(e); } } class OpcionesAyuda_busca_actionAdapter implements java.awt.event.ActionListener { HelpOptions adaptee; OpcionesAyuda_busca_actionAdapter(HelpOptions adaptee) { this.adaptee = adaptee; } public void actionPerformed(ActionEvent e) { adaptee.busca_actionPerformed(e); } } class OpcionesAyuda_lista_listSelectionAdapter implements javax.swing.event.ListSelectionListener { HelpOptions adaptee; OpcionesAyuda_lista_listSelectionAdapter(HelpOptions adaptee) { this.adaptee = adaptee; } public void valueChanged(ListSelectionEvent e) { adaptee.lista_valueChanged(e); } } class OpcionesAyuda_texto_actionAdapter implements java.awt.event.ActionListener { HelpOptions adaptee; OpcionesAyuda_texto_actionAdapter(HelpOptions adaptee) { this.adaptee = adaptee; } public void actionPerformed(ActionEvent e) { adaptee.texto_actionPerformed(e); } }