/*******************************************************************************
Copyright (c) 2014,2015, Oracle and/or its affiliates. All rights reserved.
$revision_history$
06-feb-2013 Steven Davelaar
1.0 initial creation
******************************************************************************/
package oracle.ateam.sample.mobile.dt;
import java.io.InputStream;
import java.net.MalformedURLException;
import java.net.URL;
import oracle.ateam.sample.mobile.dt.controller.PersistenceMappingLoader;
import oracle.ateam.sample.mobile.dt.util.FileUtils;
import oracle.ateam.sample.mobile.dt.view.wizard.BusinessObjectsFromRestWSWizard;
import oracle.ateam.sample.mobile.dt.view.wizard.EditPersistenceMappingWizard;
import oracle.ide.Context;
import oracle.ide.Ide;
import oracle.ide.controller.Controller;
import oracle.ide.controller.IdeAction;
import oracle.ide.extension.RegisteredByExtension;
import oracle.ide.help.HelpSystem;
import oracle.ide.webupdate.PostStartupHook;
import oracle.ide.wizard.WizardManager;
@RegisteredByExtension("oracle.ateam.mobile.persistence")
public class MobileController
implements Controller, PostStartupHook
{
public static final int OPEN_DOC_COMMAND_ID = Ide.findCmdID("oracle.ateam.sample.mobile.OpenDoc");
public static final int EDIT_PERSISTENCE_MAPPING_COMMAND_ID = Ide.findCmdID("oracle.ateam.sample.mobile.editPersistenceMapping");
public MobileController()
{
super();
}
@Override
public boolean handleEvent(IdeAction ideAction, Context context)
{
if (ideAction.getCommandId()== OPEN_DOC_COMMAND_ID)
{
showDoc();
}
else if (ideAction.getCommandId()== EDIT_PERSISTENCE_MAPPING_COMMAND_ID && ideAction.isEnabled())
{
WizardManager.getInstance().invokeWizard(new EditPersistenceMappingWizard(),context,null,null);
// WizardManager.getInstance().invokeWizard(new BusinessObjectsFromRestWSWizard(),context,null,null);
}
return true;
}
public boolean showDoc()
{
URL url = null;
try
{
String path = Ide.getProductHomeDirectory()+"/extensions/oracle.ateam.mobile.persistence/doc/index.html";
url = new URL("file:///"+path);
HelpSystem.getHelpSystem().showHelp(url);
}
catch (MalformedURLException e)
{
System.out.println("URL Foutje!!!");
}
return true;
}
@Override
public boolean update(IdeAction ideAction, Context context)
{
if (ideAction.getCommandId()==EDIT_PERSISTENCE_MAPPING_COMMAND_ID)
{
ideAction.setEnabled(false);
// only enable when persistance mapping file exists
URL fileUrl = new PersistenceMappingLoader().getPersistenceMappingFileUrl();
if (fileUrl!=null)
{
InputStream is =FileUtils.getInputStream(fileUrl);
boolean enabled = is!=null;
// System.err.println("EDIT PM ENABLED: "+enabled);
ideAction.setEnabled(enabled);
}
}
else
{
ideAction.setEnabled(true);
}
return true;
}
@Override
public void install()
{
showDoc();
}
}