Skip to content

Commit

Permalink
Merge branch 'development'
Browse files Browse the repository at this point in the history
  • Loading branch information
fabioz committed Sep 29, 2010
2 parents fe742b6 + 1274970 commit 962bbaa
Show file tree
Hide file tree
Showing 40 changed files with 623 additions and 328 deletions.
10 changes: 7 additions & 3 deletions builders/org.python.pydev.build/build_local.properties
Expand Up @@ -27,10 +27,14 @@ scs.branch.name=master
red-core.p2.repo=/var/update-site/update/${scs.branch.name}/red-core
deploy.dir=/var/update-site/update/${scs.branch.name}/pydev
cleanAfter=true
# Eclipse 3.6
vanilla.eclipse=/opt/eclipse_3.6
# Eclipse 3.6.1
vanilla.eclipse=/opt/eclipse_3.6.1
launcher.plugin=org.eclipse.equinox.launcher_1.1.0.v20100507
builder.plugin=org.eclipse.pde.build_3.6.0.v20100603
builder.plugin=org.eclipse.pde.build_3.6.1.R36x_v20100823
# Eclipse 3.6
#vanilla.eclipse=/opt/eclipse_3.6
#launcher.plugin=org.eclipse.equinox.launcher_1.1.0.v20100507
#builder.plugin=org.eclipse.pde.build_3.6.0.v20100603
# Eclipse 3.5
#launcher.plugin=org.eclipse.equinox.launcher_1.0.200.v20090520
#builder.plugin=org.eclipse.pde.build_3.5.0.v20090527-1800
Expand Down
Expand Up @@ -14,7 +14,6 @@ public ElementWithChildren(ITreeElement parent) {
private List<Object> calculatingChildren;
private Object[] calculatedChildren;

@Override
public Object[] getChildren() {
if(calculatedChildren == null){
calculatingChildren = new ArrayList<Object>();
Expand Down
Expand Up @@ -8,7 +8,6 @@ public ElementWithParent(ITreeElement parent){
this.parent = parent;
}

@Override
public ITreeElement getParent() {
return this.parent;
}
Expand Down
Expand Up @@ -21,7 +21,6 @@ public ForcedLibGroup(ITreeElement parent, InterpreterInfo interpreterInfo, Stri
this.forcedLib = forcedLib;
}

@Override
public boolean hasChildren() {
return true;
}
Expand All @@ -39,7 +38,6 @@ protected void calculateChildren() throws MisconfigurationException {
}
Collections.sort(lst, new Comparator<LeafElement>() {

@Override
public int compare(LeafElement o1, LeafElement o2) {
return o1.toString().compareTo(o2.toString());
}
Expand Down
Expand Up @@ -4,25 +4,21 @@ public class IndexRoot implements ITreeElement{

Object[] children = null;

@Override
public boolean hasChildren() {
return true;
}

@Override
public Object[] getChildren() {
if(children == null){
children = new Object[]{new InterpretersGroup(this), new ProjectsGroup(this)};
}
return children;
}

@Override
public ITreeElement getParent() {
return null; //the root has no parent
}

@Override
public String toString() {
return "Index";
}
Expand Down
Expand Up @@ -16,7 +16,6 @@ public InterpreterGroup(ITreeElement parent, IInterpreterInfo interpreterInfo) {
this.interpreterInfo = (InterpreterInfo) interpreterInfo;
}

@Override
public boolean hasChildren() {
return true;
}
Expand Down
Expand Up @@ -10,7 +10,6 @@ public InterpretersGroup(ITreeElement parent) {
super(parent);
}

@Override
public boolean hasChildren() {
return true;
}
Expand Down
Expand Up @@ -11,12 +11,10 @@ public LeafElement(ITreeElement parent, Object o) {
this.o = o;
}

@Override
public boolean hasChildren() {
return false;
}

@Override
public Object[] getChildren() {
return EMPTY;
}
Expand Down
Expand Up @@ -16,7 +16,6 @@ public String toString() {
return e.toString();
}

@Override
public boolean hasChildren() {
return false;
}
Expand Down
Expand Up @@ -51,7 +51,6 @@ public NatureGroup(ITreeElement parent, PythonNature nature) {
this.nature = nature;
}

@Override
public boolean hasChildren() {
return true;
}
Expand Down
Expand Up @@ -11,7 +11,6 @@ public ProjectsGroup(ITreeElement indexRoot) {
super(indexRoot);
}

@Override
public boolean hasChildren() {
return true;
}
Expand Down
Expand Up @@ -5,30 +5,28 @@

public class PyIndexContentProvider implements ITreeContentProvider {

@Override
public void dispose() {
}

@Override
public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
}

@Override

public Object[] getElements(Object inputElement) {
return ((ITreeElement)inputElement).getChildren();
}

@Override

public Object[] getChildren(Object parentElement) {
return ((ITreeElement)parentElement).getChildren();
}

@Override

public Object getParent(Object element) {
return ((ITreeElement)element).getParent();
}

@Override

public boolean hasChildren(Object element) {
return ((ITreeElement)element).hasChildren();
}
Expand Down
Expand Up @@ -22,14 +22,12 @@ public void createPartControl(Composite parent) {

tree.addKeyListener(new KeyListener() {

@Override
public void keyReleased(KeyEvent e) {
if(e.keyCode == SWT.F5){
treeViewer.setInput(new IndexRoot());
}
}

@Override
public void keyPressed(KeyEvent e) {
}
});
Expand Down
4 changes: 3 additions & 1 deletion plugins/com.python.pydev.docs/release_process.txt
Expand Up @@ -56,7 +56,9 @@ git pull origin %BRANCH%
cd builders\org.python.pydev.build
set GIT_EXECUTABLE="d:\bin\git\bin\git.exe"
set KEYSTORE=W:\git_deploy_dir\pydevkeystore
ant -DbuildDirectory=W:\git_build_dir\Pydev -Dbaseos=win32 -Dbasews=win32 -Dgit.executable=%GIT_EXECUTABLE% -Dbasearch=x86 -Ddeploy.dir=w:\git_deploy_dir\Pydev -DcleanAfter=false -Dvanilla.eclipse=D:\bin\eclipse_36_final_clean -DSTOREPASS=%STOREPASS% -DKEYSTORE=%KEYSTORE% -Dlocal_build=true
set LAUNCHER_PLUGIN=org.eclipse.equinox.launcher_1.1.0.v20100507
set BUILDER_PLUGIN=org.eclipse.pde.build_3.6.0.v20100603
ant -DbuildDirectory=W:\git_build_dir\Pydev -Dbaseos=win32 -Dbasews=win32 -Dgit.executable=%GIT_EXECUTABLE% -Dbasearch=x86 -Ddeploy.dir=w:\git_deploy_dir\Pydev -DcleanAfter=false -Dvanilla.eclipse=D:\bin\eclipse_36_final_clean -DSTOREPASS=%STOREPASS% -DKEYSTORE=%KEYSTORE% -Dlocal_build=true -Dlauncher.plugin=%LAUNCHER_PLUGIN% -Dbuilder.plugin=%BUILDER_PLUGIN%


Copy features and plugins folders from W:\git_deploy_dir\Pydev to W:\git_update_site_dir\updates
Expand Down
Expand Up @@ -4,6 +4,7 @@
import org.eclipse.debug.core.DebugException;
import org.eclipse.debug.core.ILaunch;
import org.eclipse.debug.core.model.IDebugElement;
import org.eclipse.debug.core.model.IDebugTarget;
import org.eclipse.debug.core.model.IValue;
import org.eclipse.debug.core.model.IWatchExpression;
import org.eclipse.debug.ui.DebugUITools;
Expand Down Expand Up @@ -42,6 +43,10 @@ public String getHoverText(IRegion hoverRegion, PySourceViewer s, PySelection ps
}

if(context != null){
IDebugTarget debugTarget = context.getDebugTarget();
if(debugTarget == null || debugTarget.isTerminated()){
return null;
}
String act = null;
ITextSelection textSelection = (ITextSelection) selection;
int mouseOffset = ps.getAbsoluteCursorOffset();
Expand Down
@@ -1,6 +1,14 @@
package org.python.pydev.django.ui.wizards.project;

import org.eclipse.core.runtime.NullProgressMonitor;
import org.eclipse.jface.wizard.IWizardPage;
import org.eclipse.swt.widgets.Composite;
import org.python.pydev.core.IInterpreterInfo;
import org.python.pydev.core.IInterpreterManager;
import org.python.pydev.core.IModule;
import org.python.pydev.core.IPythonNature;
import org.python.pydev.core.MisconfigurationException;
import org.python.pydev.plugin.PydevPlugin;
import org.python.pydev.ui.wizards.project.NewProjectNameAndLocationWizardPage;

public class DjangoNewProjectPage extends NewProjectNameAndLocationWizardPage {
Expand All @@ -22,4 +30,60 @@ public DjangoNewProjectPage(String pageName) {
public void createControl(Composite parent) {
super.createControl(parent);
}

@Override
public IWizardPage getNextPage() {
String projectType = this.getProjectType();

IInterpreterManager interpreterManager;
if(IPythonNature.Versions.ALL_JYTHON_VERSIONS.contains(projectType)){
interpreterManager = PydevPlugin.getJythonInterpreterManager();

}else if(IPythonNature.Versions.ALL_IRONPYTHON_VERSIONS.contains(projectType)){
interpreterManager = PydevPlugin.getIronpythonInterpreterManager();

}else{
//if others fail, consider it python
interpreterManager = PydevPlugin.getPythonInterpreterManager();
}

try {
String projectInterpreter = this.getProjectInterpreter();
IInterpreterInfo interpreterInfo;
if(projectInterpreter.toLowerCase().equals("default")){
interpreterInfo = interpreterManager.getDefaultInterpreterInfo(new NullProgressMonitor());
}else{
interpreterInfo = interpreterManager.getInterpreterInfo(projectInterpreter, new NullProgressMonitor());
}
IModule module = interpreterInfo.getModulesManager().getModuleWithoutBuiltins("django.core.__init__", null, false);
if(module == null){
DjangoNotAvailableWizardPage page = new DjangoNotAvailableWizardPage("Django not available", interpreterInfo);
page.setWizard(this.getWizard());
return page;
}
} catch (MisconfigurationException e) {
ErrorWizardPage page = new ErrorWizardPage("Unexpected error.", "An unexpected error happened:\n"+e.getMessage());
page.setWizard(this.getWizard());
return page;
}


return super.getNextPage();
}

@Override
protected boolean validatePage() {
boolean validated = super.validatePage();
if(!validated){
return false; //some error found in the base class
}

String projectName = getProjectName();
if (projectName.trim().toLowerCase().equals("django")) { //$NON-NLS-1$
setErrorMessage("When creating a Django project it cannot be named Django because of conflicts with the default Django install.");
return false;
}
return true;
}

}
@@ -0,0 +1,55 @@
package org.python.pydev.django.ui.wizards.project;

import org.eclipse.jface.wizard.WizardPage;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.events.SelectionListener;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.program.Program;
import org.eclipse.swt.widgets.Composite;
import org.python.pydev.core.IInterpreterInfo;
import org.python.pydev.utils.LinkFieldEditor;

public class DjangoNotAvailableWizardPage extends WizardPage{


public DjangoNotAvailableWizardPage(String pageName, IInterpreterInfo interpreterInfo) {
super(pageName);
}


public void createControl(Composite parent) {
Composite composite = new Composite(parent, SWT.NULL);
composite.setLayout(new GridLayout());
composite.setLayoutData(new GridData(GridData.FILL_BOTH));
composite.setFont(parent.getFont());


LinkFieldEditor colorsAndFontsLinkFieldEditor = new LinkFieldEditor(
"UNUSED", "To get started with Django in Pydev, a pre-requisite is that Django is \n" +
"installed in the Python / Jython / IronPython interpreter you want to use \n" +
"(so, \"import django\" must properly work). \n" +
"\n" +
"It seems that the selected interpreter does not have Django available, so, please\n" +
"install Django, reconfigure the interpreter so that Django is recognized\n" +
"and then come back to this wizard.\n" +
"\n" +
"An introduction on how to get started with Django in Pydev is available at:\n" +
"<a>http://pydev.org/manual_adv_django.html</a>.\n"
, composite, new SelectionListener() {

public void widgetSelected(SelectionEvent e) {
Program.launch("http://pydev.org/manual_adv_django.html");
}

public void widgetDefaultSelected(SelectionEvent e) {
}
});
colorsAndFontsLinkFieldEditor.getLinkControl(composite);

setErrorMessage("Django not found.");
setControl(composite);
}

}
Expand Up @@ -20,6 +20,7 @@
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.jface.text.IDocument;
import org.eclipse.jface.wizard.IWizardPage;
import org.python.pydev.core.ICodeCompletionASTManager;
import org.python.pydev.core.REF;
import org.python.pydev.core.Tuple;
Expand Down Expand Up @@ -279,4 +280,10 @@ protected void initializeDefaultPageImageDescriptor() {
ImageDescriptor desc = PydevPlugin.imageDescriptorFromPlugin(DjangoPlugin.getPluginID(), "icons/django_logo.png");//$NON-NLS-1$
setDefaultPageImageDescriptor(desc);
}

@Override
public boolean canFinish() {
IWizardPage currentPage = this.getContainer().getCurrentPage();
return currentPage == this.settingsPage; //can only finish at the last page!
}
}

0 comments on commit 962bbaa

Please sign in to comment.