Saturday, March 26, 2011

IDENTIFICAR EL TIPO DE PROYECTO


IDENTIFICAR EL TIPO DE PROYECTO
Identifica el tipo de proyecto abierto y obtiene la ruta de la carpeta src y web
Damos clic en el nombre del proyecto y presionamos




Creamos un nuevo modulo


En las propiedades Agregamos

En el layer.xml agregamos
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE filesystem PUBLIC "-//NetBeans//DTD Filesystem 1.2//EN"
"http://www.netbeans.org/dtds/filesystem-1_2.dtd">
<filesystem>
<folder name="Actions">
<folder name="File">
<file name="org-avbravo-analizadorproyectos-MiAccion.instance">
<attr name="SystemFileSystem.localizingBundle"
stringvalue="org.avbravo.analizadorproyectos.Bundle"/>
<attr name="delegate" newvalue="org.avbravo.analizadorproyectos.MiAccion"/>
<attr name="displayName"
bundlevalue="org.avbravo.analizadorproyectos.Bundle#CTL_AnalizadorProyecto="/>
<attr name="iconBase"
stringvalue="org/avbravo/analizadorproyectos/resources/custom.png"/>
<attr name="instanceCreate" methodvalue="org.openide.awt.Actions.alwaysEnabled"/>
<attr name="noIconInMenu" stringvalue="false"/>
</file>
</folder>
<folder name="Window">
<file name="org-avbravo-analizadorproyectos-JSFWindowsTopComponent.instance"
url="org-avbravo-analizadorproyectos-JSFWindowsTopComponent.instance"/>
</folder>
</folder>
<folder name="Toolbars">
<folder name="File">
<file name="org-avbravo-analizadorproyectos-MiAccion.shadow">
<attr name="originalFile" stringvalue="Actions/File/org-avbravo-analizadorproyectos-
MiAccion.instance"/>
<attr name="position" intvalue="0"/>
</file>
</folder>
</folder>
</filesystem>


Clase Sesion.java
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package org.avbravo.analizadorproyectos;
import java.io.File;
/**
*
* @author avbravo
*/
public class Sesion {
static String src;
static String web;
static String tipoProyecto;
public static String getSrc() {
return src;
}
public static void setSrc(String src) {
Sesion.src = src;
}
public static String getWeb() {
return web;
}
public static void setWeb(String web) {
Sesion.web = web;
}
public static String getTipoProyecto() {
return tipoProyecto;
}
public static void setTipoProyecto(String tipoProyecto) {
Sesion.tipoProyecto = tipoProyecto;
}

}

MiAccion.java
package org.avbravo.analizadorproyectos;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javscazutilidades.Mensajeria;
import org.openide.windows.TopComponent;
/**
*
* @author avbravo
*/
public class MiAccion implements ActionListener {
public void actionPerformed(ActionEvent e) {
// TODO implement action body
MyAction myAction = new MyAction();
boolean b = myAction.isEnabled();
if (b){
/// Mensajeria.Mensaje("cierto");
}
else
{
Mensajeria.Mensaje("Debe seleccionar el proyecto");
}
}
}







MyAction.java


import javscazutilidades.Mensajeria;
import org.netbeans.api.project.Project;
import org.openide.nodes.Node;
import org.openide.util.HelpCtx;
import org.openide.util.Lookup;
import org.openide.util.actions.CookieAction;
import org.openide.windows.TopComponent;

/**
 *
 * @author avbravo
 */
public final class MyAction extends CookieAction {

    Sesion sesion = new Sesion();
    String web = "";
    String src = "";

    @Override
    public boolean isEnabled() {
        try {
            web = "";
            src = "";
            if (this.getActivatedNodes() == null || this.getActivatedNodes().length != 1) {
                return false;
            }
            Lookup lookup = this.getActivatedNodes()[0].getLookup();
            // gets the selected project
            Project currentProject = lookup.lookup(Project.class);
            if (currentProject != null) {
                String tipoProyecto = currentProject.getClass().getSimpleName();
                // Mensajeria.Mensaje("TipoProyecto:" + tipoProyecto);
                sesion.setTipoProyecto(tipoProyecto);
                src = currentProject.getProjectDirectory().getFileObject("src").toString();
                src = src.substring(src.indexOf("[") + 1, src.indexOf("@"));
              
sesion.setSrc(src);
                if (tipoProyecto.equals("NbMavenProjectImpl")) {
                    /*
                     * maven
                     */
                } else {

                    if (tipoProyecto.equals("NbModuleProject")) {
                        /*
                         * modulo netbeans
                         */
                    } else {
                        if (tipoProyecto.equals("J2SEProject")) {
                            /*
                             * desktop
                             */
                        } else {
                            if (tipoProyecto.equals("WebProject")) {
                                /*
                                 * web
                                 */
                                web = currentProject.getProjectDirectory().getFileObject("web").toString();
                                web = web.substring(web.indexOf("[") + 1, web.indexOf("@"));
                            }
                        }
                    }

                  
                    sesion.setWeb(web);
                    /*
                    if (currentProject.getProjectDirectory().getFileObject("nbproject") == null) {
                    Mensajeria.Mensaje(" null");
                    } else {
                    }
                     */



                }

                TopComponent tc = new AnalizadorProyectoTopComponent();
                tc.open();
                tc.requestActive();
                return true;
            
            }
        
        } catch (Exception ex) {
            Mensajeria.MensajeError(ex, "Error");

        }
        return false;
    }

    @Override
    protected int mode() {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    @Override
    protected Class<?>[] cookieClasses() {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    @Override
    protected void performAction(Node[] nodes) {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    @Override
    public String getName() {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    @Override
    public HelpCtx getHelpCtx() {
        throw new UnsupportedOperationException("Not supported yet.");
    }
}


Creamos una ventana

En el init()
jTextFieldSRC.setText(sesion.getSrc());
jTextFieldWEB.setText(sesion.getWeb());
jTextFieldTipo.setText(sesion.getTipoProyecto());





No comments: