/***************************************************************************
* Copyright (c) 2004 - 2008 Fabrizio Boco fabboco@users.sourceforge.net *
* *
* *
* This is free software; you can redistribute it and/or *
* modify it under the terms of the GNU Library General Public *
* License (version 2.1) as published by the Free Software Foundation *
* *
* This library 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 Library General Public License for more details. *
* *
* You should have received a copy of the GNU Library General Public *
* License along with this library; see the file COPYING.LIB. If not, *
* write to the Free Software Foundation, Inc., 59 Temple Place, *
* Suite 330, Boston, MA 02111-1307, USA *
* *
***************************************************************************/
/**
- $Header: /usr/local/cvslocalrepository/EJB3PlugIn/src/boco/ejb3PlugIn/popup/actions/attribute/Attic/ShowInList.java,v 1.1.2.9 2008/06/02 20:04:33 fab Exp $
- $Author: fab $
- $Revision: 1.1.2.9 $
- $Date: 2008/06/02 20:04:33 $
- $Log: ShowInList.java,v $
- Revision 1.1.2.9 2008/06/02 20:04:33 fab
- Eliminate System.out
-
- Revision 1.1.2.8 2008/05/25 07:30:42 fab
- Fix nelle voci di menu delle relazioni - mancavano le relazioni 1:1
-
- Revision 1.1.2.7 2008/05/19 09:32:30 fab
- *** empty log message ***
-
- Revision 1.1.2.6 2008/05/05 12:40:11 fab
- Fix nella generazione dei packages
-
- Revision 1.1.2.5 2008/04/22 17:09:21 fab
- *** empty log message ***
-
- Revision 1.1.2.4 2008/04/22 06:17:38 fab
- Aggiornamento indirizzo di posta
-
- Revision 1.1.2.3 2008/04/19 11:21:01 fab
- Modifiche a seguito del refactoring del generatore
-
- Revision 1.1.2.2 2008/04/19 10:26:49 fab
- Aggiornamento riferimenti licenza
-
-
**/
/**
- $Header: /usr/local/cvslocalrepository/EJB3PlugIn/src/boco/ejb3PlugIn/popup/actions/attribute/Attic/ShowInList.java,v 1.1.2.9 2008/06/02 20:04:33 fab Exp $
- $Author: fab $
- $Revision: 1.1.2.9 $
- $Date: 2008/06/02 20:04:33 $
- $Log: ShowInList.java,v $
- Revision 1.1.2.9 2008/06/02 20:04:33 fab
- Eliminate System.out
-
- Revision 1.1.2.8 2008/05/25 07:30:42 fab
- Fix nelle voci di menu delle relazioni - mancavano le relazioni 1:1
-
- Revision 1.1.2.7 2008/05/19 09:32:30 fab
- *** empty log message ***
-
- Revision 1.1.2.6 2008/05/05 12:40:11 fab
- Fix nella generazione dei packages
-
- Revision 1.1.2.5 2008/04/22 17:09:21 fab
- *** empty log message ***
-
- Revision 1.1.2.4 2008/04/22 06:17:38 fab
- Aggiornamento indirizzo di posta
-
- Revision 1.1.2.3 2008/04/19 11:21:01 fab
- Modifiche a seguito del refactoring del generatore
-
- Revision 1.1.2.2 2008/04/19 10:26:49 fab
- Aggiornamento riferimenti licenza
-
- Revision 1.1.2.1 2008/03/28 18:44:26 fab
- Refactoring delle azioni
- Internazionalizzazione di tutte le voci di menu
-
- Revision 1.4 2006/06/11 14:07:42 dev
- Modifica per supportare ordinamento di default nella list dei bean
-
- Revision 1.3 2006/05/23 14:33:07 dev
- Fix per import delle annotazioni
-
- Revision 1.2 2006/05/21 13:41:18 dev
- Corretta annotazione cvs
-
**/
package boco.ejb3PlugIn.popup.actions.attribute;
import java.util.StringTokenizer;
import org.eclipse.jdt.core.ICompilationUnit;
import org.eclipse.jdt.core.IField;
import org.eclipse.jdt.core.IType;
import org.eclipse.jdt.core.JavaModelException;
import org.eclipse.jdt.internal.core.SourceField;
import org.eclipse.jface.action.IAction;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.jface.viewers.ISelection;
import org.eclipse.jface.viewers.StructuredSelection;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.ui.IObjectActionDelegate;
import org.eclipse.ui.IWorkbenchPart;
import boco.ejb3PlugIn.gui.ShowAttributeInListDialog;
public class ShowInList implements IObjectActionDelegate
{
private IField field;
private IField nextField;
public ShowInList()
{
super();
}
public void setActivePart(IAction action, IWorkbenchPart targetPart)
{
}
public void run(IAction action)
{
Shell shell = new Shell();
if (!field.getParent().getParent().getParent().getElementName().endsWith("entity"))
{
MessageDialog.openInformation(shell, "EJB_PlugIn Plug-in", "Operazione valida solo per un bean");
return;
}
ICompilationUnit compilationUnit = field.getCompilationUnit();
ShowAttributeInListDialog showAttributeInListDialog = new ShowAttributeInListDialog(null);
showAttributeInListDialog.pack();
showAttributeInListDialog.setLocationRelativeTo(null);
showAttributeInListDialog.setVisible(true);
String order = showAttributeInListDialog.getOrder();
if (order == null)
return;
try
{
String newFieldSourceCode = "";
String oldFieldSourceCode = "";
// Dal codice esistente rimuove l'annotazione se presente
StringTokenizer st = new StringTokenizer(field.getSource(),"\n\r\f");
while (st.hasMoreTokens())
{
String token = st.nextToken();
//System.out.println(".."+token);
if(!token.contains("@ShowAttributeInList"))
{
oldFieldSourceCode += token+"\r\n";;
}
}
IType type = compilationUnit.getTypes()[0];
//Rimuove il campo esistente
type.getField(field.getElementName()).delete(true, null);
newFieldSourceCode += "\r\n\r\n@ShowAttributeInList(order=" + order + ", isDefaultOrderingAttribute="+showAttributeInListDialog.isDefaultOrderingAttribute()+", ascending="+showAttributeInListDialog.getMode()+")\r\n";
newFieldSourceCode += oldFieldSourceCode+"\r\n";
type.createField("\r\n"+newFieldSourceCode, nextField, true, null);
if(!compilationUnit.getSource().contains("import org.boco.seamwebappgen.annotations.ShowAttributeInList"))
compilationUnit.createImport("org.boco.seamwebappgen.annotations.ShowAttributeInList", null, null);
compilationUnit.save(null, true);
}
catch (JavaModelException e)
{
e.printStackTrace();
}
}
public void selectionChanged(IAction action, ISelection selection)
{
StructuredSelection structSelection = (StructuredSelection) selection;
// System.out.println("Class " + structSelection.getFirstElement().getClass());
if (structSelection.getFirstElement().getClass().equals(org.eclipse.jdt.internal.core.SourceField.class))
{
field = (SourceField) structSelection.getFirstElement();
}
IType Clazz = (IType) field.getParent();
try
{
IField fields[] = Clazz.getFields();
for(int i=0; i<fields.length; i++)
{
IField item = fields[i];
if (item.equals(field))
{
nextField = (IField)fields[i+1];
// System.out.println("Next Field"+nextField);
}
}
}
catch (JavaModelException e)
{
e.printStackTrace();
}
}
}