Skip to content

Commit

Permalink
First version with new Packagist Search
Browse files Browse the repository at this point in the history
  • Loading branch information
gossi committed Feb 5, 2013
1 parent 477ee40 commit 70f452b
Show file tree
Hide file tree
Showing 158 changed files with 908 additions and 67 deletions.
Empty file modified .gitignore 100644 → 100755
Empty file.
Empty file modified .gitmodules 100644 → 100755
Empty file.
Empty file modified .travis.yml 100644 → 100755
Empty file.
Empty file modified LICENSE 100644 → 100755
Empty file.
Empty file modified README.md 100644 → 100755
Empty file.
Empty file modified changelog.txt 100644 → 100755
Empty file.
Empty file modified com.dubture.composer.core/.classpath 100644 → 100755
Empty file.
Empty file modified com.dubture.composer.core/.project 100644 → 100755
Empty file.
Empty file modified com.dubture.composer.core/.settings/org.eclipse.jdt.core.prefs 100644 → 100755
Empty file.
Empty file modified com.dubture.composer.core/.settings/org.eclipse.jdt.ui.prefs 100644 → 100755
Empty file.
Empty file modified com.dubture.composer.core/META-INF/MANIFEST.MF 100644 → 100755
Empty file.
Empty file modified com.dubture.composer.core/build.properties 100644 → 100755
Empty file.
Empty file modified com.dubture.composer.core/ico/full/obj16/icon-logo-composer.png 100644 → 100755
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Empty file modified com.dubture.composer.core/ico/full/wizban/packagist.png 100644 → 100755
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Empty file modified com.dubture.composer.core/plugin.xml 100644 → 100755
Empty file.
Empty file modified com.dubture.composer.core/pom.xml 100644 → 100755
Empty file.
Empty file.
Empty file.
Empty file.
8 changes: 4 additions & 4 deletions com.dubture.composer.core/src/com/dubture/composer/core/ComposerPlugin.java 100644 → 100755
Expand Up @@ -17,7 +17,7 @@
import org.eclipse.core.runtime.Platform;
import org.eclipse.core.runtime.Status;
import org.eclipse.ui.plugin.AbstractUIPlugin;
import org.getcomposer.packagist.SearchResultDownloader;
import org.getcomposer.packagist.PackagistSearch;
import org.osgi.framework.BundleContext;

import com.dubture.composer.core.model.ModelAccess;
Expand All @@ -30,7 +30,7 @@ public class ComposerPlugin extends AbstractUIPlugin {

private static final String DEBUG = "com.dubture.composer.core/debug";

private SearchResultDownloader packageDownloader = null;
private PackagistSearch packageDownloader = null;

/*
* (non-Javadoc)
Expand Down Expand Up @@ -91,13 +91,13 @@ public static void logException(Exception e)
plugin.getLog().log(status);
}

public SearchResultDownloader getPackageDownloader() {
public PackagistSearch getPackageDownloader() {

if (packageDownloader != null) {
return packageDownloader;
}

return packageDownloader = new SearchResultDownloader();
return packageDownloader = new PackagistSearch();
}

public boolean isBuildpathContainerEnabled()
Expand Down
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file modified com.dubture.composer.feature/.project 100644 → 100755
Empty file.
Empty file modified com.dubture.composer.feature/build.properties 100644 → 100755
Empty file.
Empty file modified com.dubture.composer.feature/feature.xml 100644 → 100755
Empty file.
Empty file modified com.dubture.composer.feature/pom.xml 100644 → 100755
Empty file.
Empty file modified com.dubture.composer.test/.classpath 100644 → 100755
Empty file.
Empty file modified com.dubture.composer.test/.project 100644 → 100755
Empty file.
Empty file modified com.dubture.composer.test/.settings/org.eclipse.jdt.core.prefs 100644 → 100755
Empty file.
Empty file modified com.dubture.composer.test/META-INF/MANIFEST.MF 100644 → 100755
Empty file.
Empty file modified com.dubture.composer.test/Resources/autoload_namespaces.php 100644 → 100755
Empty file.
Empty file modified com.dubture.composer.test/Resources/installed.json 100644 → 100755
Empty file.
Empty file modified com.dubture.composer.test/Resources/installed_dev.json 100644 → 100755
Empty file.
Empty file modified com.dubture.composer.test/build.properties 100644 → 100755
Empty file.
Empty file modified com.dubture.composer.test/pom.xml 100644 → 100755
Empty file.
Empty file.
Empty file modified com.dubture.composer.ui/.classpath 100644 → 100755
Empty file.
Empty file modified com.dubture.composer.ui/.project 100644 → 100755
Empty file.
Empty file modified com.dubture.composer.ui/.settings/org.eclipse.jdt.core.prefs 100644 → 100755
Empty file.
Empty file modified com.dubture.composer.ui/META-INF/MANIFEST.MF 100644 → 100755
Empty file.
Empty file modified com.dubture.composer.ui/build.properties 100644 → 100755
Empty file.
Empty file modified com.dubture.composer.ui/icons/full/obj16/author.png 100644 → 100755
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Empty file modified com.dubture.composer.ui/icons/full/obj16/composer.png 100644 → 100755
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Empty file modified com.dubture.composer.ui/icons/full/obj16/internal_browser.gif 100644 → 100755
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Empty file modified com.dubture.composer.ui/icons/full/obj16/package_obj.gif 100644 → 100755
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Empty file modified com.dubture.composer.ui/icons/full/obj16/page_obj.gif 100644 → 100755
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Empty file modified com.dubture.composer.ui/icons/full/obj16/php-icon.png 100644 → 100755
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Empty file modified com.dubture.composer.ui/icons/full/wizban/packagist.png 100644 → 100755
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Empty file modified com.dubture.composer.ui/plugin.xml 100644 → 100755
Empty file.
Empty file.
Empty file.
Expand Up @@ -17,7 +17,7 @@ public Object[] getElements(Object inputElement) {
}

public String getColumnText(Object element, int columnIndex) {
VersionedPackage dep = (VersionedPackage)element;
VersionedPackage dep = (VersionedPackage)element;
StringBuilder sb = new StringBuilder();
sb.append(dep.getName());
sb.append(": ");
Expand Down
Empty file.
@@ -0,0 +1,5 @@
package com.dubture.composer.ui.controller;

public interface IPackageCheckStateChangedListener {
public void packageCheckStateChanged(String name, boolean checked);
}
Empty file.
108 changes: 97 additions & 11 deletions com.dubture.composer.ui/src/com/dubture/composer/ui/controller/PackageController.java 100644 → 100755
@@ -1,21 +1,36 @@
package com.dubture.composer.ui.controller;

import java.util.ArrayList;
import java.util.List;

import org.eclipse.jface.viewers.CheckStateChangedEvent;
import org.eclipse.jface.viewers.ICheckStateListener;
import org.eclipse.jface.viewers.ICheckStateProvider;
import org.eclipse.jface.viewers.LabelProvider;
import org.eclipse.jface.viewers.Viewer;
import org.eclipse.swt.graphics.Image;
import org.getcomposer.ComposerPackage;
import org.getcomposer.MinimalPackage;

import com.dubture.composer.ui.ComposerUIPluginImages;

public class PackageController extends LabelProvider implements ITableController {
public class PackageController extends LabelProvider implements ITableController, ICheckStateProvider, ICheckStateListener {

private List<MinimalPackage> packages;
protected Image pkgImage = ComposerUIPluginImages.PACKAGE.createImage();
protected Image phpImage = ComposerUIPluginImages.PHP.createImage();
private List<String> checked = new ArrayList<String>();
protected static Image pkgImage = ComposerUIPluginImages.PACKAGE.createImage();
protected static Image phpImage = ComposerUIPluginImages.PHP.createImage();
protected List<IPackageCheckStateChangedListener> pkgListeners = new ArrayList<IPackageCheckStateChangedListener>();

public void addPackageCheckStateChangedListener(IPackageCheckStateChangedListener listener) {
if (!pkgListeners.contains(listener)) {
pkgListeners.add(listener);
}
}

public void removePackageCheckStateChangedListener(IPackageCheckStateChangedListener listener) {
pkgListeners.remove(listener);
}

@SuppressWarnings("unchecked")
public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
if (newInput == null) {
Expand All @@ -33,20 +48,91 @@ public Object[] getElements(Object inputElement) {
}
}

public void addPackages(List<ComposerPackage> packages) {
public void addPackages(List<MinimalPackage> packages) {
this.packages.addAll(packages);
}

public Image getColumnImage(Object element, int columnIndex) {
MinimalPackage pkg = (MinimalPackage)element;
if (pkg.getName() == "php") {

public Image getImage(Object element) {
return PackageController.getPackageImage(element);
}

public static Image getPackageImage(Object element) {
String name = PackageController.getPackageName(element);
if (name == "php") {
return phpImage;
}
return pkgImage;
}

public Image getColumnImage(Object element, int columnIndex) {
return getImage(element);
}

public String getText(Object element) {
return getName(element);
}

public String getColumnText(Object element, int columnIndex) {
MinimalPackage pkg = (MinimalPackage)element;
return pkg.getName();
return getText(element);
}

@Override
public void checkStateChanged(CheckStateChangedEvent event) {
setChecked(((MinimalPackage)event.getElement()).getName(), event.getChecked());
}

public List<String> getCheckedPackages() {
return checked;
}

public int getCheckedPackagesCount() {
return checked.size();
}

public void clear() {
checked.clear();
// for (String name : checked) {
// setChecked(name, false);
// }
}

public void setChecked(String name, boolean checked) {
if (checked && !this.checked.contains(name)) {
this.checked.add(name);
}

if (!checked) {
this.checked.remove(name);
}

for (IPackageCheckStateChangedListener listener : pkgListeners) {
listener.packageCheckStateChanged(name, checked);
}
}

private String getName(Object element) {
return PackageController.getPackageName(element);
}

public static String getPackageName(Object element) {
String name = null;
if (element instanceof MinimalPackage) {
name = ((MinimalPackage)element).getName();
} else if (element instanceof String) {
name = (String)element;
}
return name;
}


@Override
public boolean isChecked(Object element) {
return checked.contains(getName(element));
}

@Override
public boolean isGrayed(Object element) {
// TODO Auto-generated method stub
return false;
}
}
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Expand Up @@ -95,7 +95,8 @@ protected void addPages() {
try {
addOverview();
addDependencies();
addDependencyGraph();
// addDependencyGraph();
setActivePage(DependenciesPage.ID);

// Aww, can't use jsonedit here :(
// addPage(new JsonTextEditor(), getEditorInput());
Expand Down
Empty file.
Empty file.
Empty file.
Expand Up @@ -7,6 +7,7 @@

import com.dubture.composer.ui.editor.ComposerFormPage;
import com.dubture.composer.ui.editor.ComposerSection;
import com.dubture.composer.ui.parts.composer.DependencySearch;
import com.dubture.composer.ui.parts.composer.PackageSearch;

public class DependencySearchSection extends ComposerSection {
Expand All @@ -18,11 +19,11 @@ public DependencySearchSection(ComposerFormPage page, Composite parent) {

@Override
protected void createClient(Section section, FormToolkit toolkit) {
section.setText("Package Search");
section.setText("Packagist Search");
section.setDescription("Search for packages and add the selected packages to the opened section on the left.");
section.setLayoutData(new GridData(GridData.FILL_BOTH));

PackageSearch dependencySearch = new PackageSearch(section, toolkit);
DependencySearch dependencySearch = new DependencySearch(section, toolkit, "Add Dependencies");

section.setClient(dependencySearch.getBody());
}
Expand Down
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
@@ -0,0 +1,101 @@
package com.dubture.composer.ui.parts.composer;

import java.util.ArrayList;
import java.util.List;

import org.eclipse.jface.viewers.TableViewer;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.graphics.Color;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Group;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Layout;
import org.eclipse.swt.widgets.Text;
import org.eclipse.ui.forms.events.HyperlinkAdapter;
import org.eclipse.ui.forms.events.HyperlinkEvent;
import org.eclipse.ui.forms.widgets.ExpandableComposite;
import org.eclipse.ui.forms.widgets.FormToolkit;
import org.eclipse.ui.forms.widgets.Twistie;
import org.getcomposer.ComposerConstants;
import org.getcomposer.collection.Dependencies;

import com.dubture.composer.ui.editor.FormLayoutFactory;
import com.dubture.composer.ui.utils.WidgetHelper;

public class DependencySearch extends PackageSearch {

protected List<DependencySelectionFinishedListener> dependencyListeners = new ArrayList<DependencySelectionFinishedListener>();

public DependencySearch (Composite parent, FormToolkit toolkit, String buttonText) {
super(parent, toolkit, buttonText);
}

public DependencySearch (Composite parent, FormToolkit toolkit) {
super(parent, toolkit);
}

public DependencySearch (Composite parent, String buttonText) {
super(parent, buttonText);
}

public DependencySearch(Composite parent) {
super(parent);
}

public void addDependencySelectionFinishedListener(DependencySelectionFinishedListener listener) {
if (!dependencyListeners.contains(listener)) {
dependencyListeners.add(listener);
}
}

public void removeDependencySelectionFinishedListener(DependencySelectionFinishedListener listener) {
dependencyListeners.remove(listener);
}

@Override
protected void create(Composite parent, FormToolkit toolkit, String buttonText) {
super.create(parent, toolkit, buttonText);

if (addButton != null) {
addButton.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(SelectionEvent e) {
notifyDependencySelectionFinishedListener();
}
});
}

// test package part
createPackagePart(pickedResults, "gossi/test");
}

protected void notifyDependencySelectionFinishedListener() {
Dependencies deps = getDependencies();
for (DependencySelectionFinishedListener listener : dependencyListeners) {
listener.dependenciesSelected(deps);
}
clear();
}

public Dependencies getDependencies() {
return null;
}


@Override
protected DependencySearchPart createPackagePart(Composite parent, String name) {
DependencySearchPart dsp = new DependencySearchPart(parent, toolkit, name);
dsp.addToggleListener(new HyperlinkAdapter() {
public void linkActivated(HyperlinkEvent e) {
getBody().layout(true, true);
}
});
return dsp;
}

}
@@ -0,0 +1,74 @@
package com.dubture.composer.ui.parts.composer;

import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Text;
import org.eclipse.ui.forms.events.HyperlinkAdapter;
import org.eclipse.ui.forms.events.HyperlinkEvent;
import org.eclipse.ui.forms.events.IHyperlinkListener;
import org.eclipse.ui.forms.widgets.FormToolkit;
import org.eclipse.ui.forms.widgets.Twistie;

import com.dubture.composer.ui.utils.WidgetFactory;
import com.dubture.composer.ui.utils.WidgetHelper;

public class DependencySearchPart extends PackageSearchPart {

protected Twistie toggle;
protected VersionSuggestion suggestion;

public DependencySearchPart(Composite parent, FormToolkit toolkit, String name) {
super(parent, toolkit, name);
}

protected void create(Composite parent, WidgetFactory factory) {
createBody(parent, factory);
WidgetHelper.trimComposite(body, 0, 0, 0, 0, 0, 0);

// title
Composite title = factory.createComposite(body, SWT.NO_BACKGROUND);
title.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false));
title.setLayout(new GridLayout(3, false));
WidgetHelper.trimComposite(title, -5,-5,-5,-5, 0, 0);

// toggle box
Composite toggleBox = factory.createComposite(title, SWT.NO_BACKGROUND);
toggleBox.setLayout(new GridLayout());
toggle = new Twistie(toggleBox, SWT.NO_BACKGROUND | SWT.NO_FOCUS);
toggle.setExpanded(true); //TODO: REMOVE!
toggle.addHyperlinkListener(new HyperlinkAdapter() {
public void linkActivated(HyperlinkEvent e) {
boolean expanded = toggle.isExpanded();
suggestion.getBody().setVisible(expanded);
((GridData)suggestion.getBody().getLayoutData()).exclude = !expanded;
body.layout(true, true);
}
});
WidgetHelper.trimComposite(toggleBox, 3, -7, 0, 0, 0, 0);

// package
createPackageCheckbox(title, factory, name);

// version
Text version = factory.createText(title, SWT.SINGLE | SWT.BORDER);
version.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false));

// suggestion
suggestion = new VersionSuggestion(name, body, version, toolkit);
WidgetHelper.trimComposite(suggestion.getBody(), -5,-5,-5,-5, 0, 0);
}

public void addToggleListener(IHyperlinkListener listener) {
toggle.addHyperlinkListener(listener);
}

public void removeToggleListener(IHyperlinkListener listener) {
toggle.removeHyperlinkListener(listener);
}

public boolean isExpanded() {
return toggle.isExpanded();
}
}

0 comments on commit 70f452b

Please sign in to comment.