@@ -1,28 +1,30 @@ | |||||
<?xml version="1.0" encoding="ASCII"?> | <?xml version="1.0" encoding="ASCII"?> | ||||
<application:Application xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:advanced="http://www.eclipse.org/ui/2010/UIModel/application/ui/advanced" xmlns:application="http://www.eclipse.org/ui/2010/UIModel/application" xmlns:basic="http://www.eclipse.org/ui/2010/UIModel/application/ui/basic" xmi:id="_Lw_ZsEqSEeqT5sxfmvJ5Tg" elementId="xyz.veronie.bgg.ui.application"> | |||||
<application:Application xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:application="http://www.eclipse.org/ui/2010/UIModel/application" xmlns:basic="http://www.eclipse.org/ui/2010/UIModel/application/ui/basic" xmlns:menu="http://www.eclipse.org/ui/2010/UIModel/application/ui/menu" xmi:id="_Lw_ZsEqSEeqT5sxfmvJ5Tg" elementId="xyz.veronie.bgg.ui.application"> | |||||
<children xsi:type="basic:TrimmedWindow" xmi:id="_QDxdgEqSEeqT5sxfmvJ5Tg" elementId="xyz.veronie.bgg.ui.trimmedwindow.main" label="BGG Tool Another" width="1200" height="800"> | <children xsi:type="basic:TrimmedWindow" xmi:id="_QDxdgEqSEeqT5sxfmvJ5Tg" elementId="xyz.veronie.bgg.ui.trimmedwindow.main" label="BGG Tool Another" width="1200" height="800"> | ||||
<children xsi:type="basic:PartSashContainer" xmi:id="_B_h_UEqVEeqT5sxfmvJ5Tg" elementId="xyz.veronie.bgg.ui.partsashcontainer.0"> | <children xsi:type="basic:PartSashContainer" xmi:id="_B_h_UEqVEeqT5sxfmvJ5Tg" elementId="xyz.veronie.bgg.ui.partsashcontainer.0"> | ||||
<children xsi:type="basic:PartSashContainer" xmi:id="_tbnr0EqTEeqT5sxfmvJ5Tg" elementId="xyz.veronie.bgg.ui.partsashcontainer.main" horizontal="true"> | <children xsi:type="basic:PartSashContainer" xmi:id="_tbnr0EqTEeqT5sxfmvJ5Tg" elementId="xyz.veronie.bgg.ui.partsashcontainer.main" horizontal="true"> | ||||
<children xsi:type="basic:PartSashContainer" xmi:id="_4NsHQEqTEeqT5sxfmvJ5Tg" elementId="xyz.veronie.bgg.ui.partsashcontainer.bggload"> | <children xsi:type="basic:PartSashContainer" xmi:id="_4NsHQEqTEeqT5sxfmvJ5Tg" elementId="xyz.veronie.bgg.ui.partsashcontainer.bggload"> | ||||
<children xsi:type="basic:PartStack" xmi:id="_7KNiwEqTEeqT5sxfmvJ5Tg" elementId="xyz.veronie.bgg.ui.partstack.bggloadconf" containerData="1000"> | |||||
<children xsi:type="basic:Part" xmi:id="_9ocfwEqTEeqT5sxfmvJ5Tg" elementId="xyz.veronie.bgg.ui.part.resultconfig" contributionURI="bundleclass://xyz.veronie.bgg.ui/xyz.veronie.bgg.ui.parts.LoadFromBggPart" label="Load IDs from BGG"/> | |||||
<children xsi:type="basic:PartStack" xmi:id="_7KNiwEqTEeqT5sxfmvJ5Tg" elementId="xyz.veronie.bgg.ui.partstack.bggloadconf" containerData="1400"> | |||||
<children xsi:type="basic:Part" xmi:id="_9ocfwEqTEeqT5sxfmvJ5Tg" elementId="xyz.veronie.bgg.ui.part.resultconfig" contributionURI="bundleclass://xyz.veronie.bgg.ui/xyz.veronie.bgg.ui.parts.LoadFromBggPart" label="Prepare"/> | |||||
</children> | </children> | ||||
<children xsi:type="basic:PartStack" xmi:id="_7hQw0EqTEeqT5sxfmvJ5Tg" elementId="xyz.veronie.bgg.ui.partstack.bggresult" containerData="1000"> | |||||
<children xsi:type="basic:Part" xmi:id="_97XbwEqTEeqT5sxfmvJ5Tg" elementId="xyz.veronie.bgg.ui.part.resulttable" contributionURI="bundleclass://xyz.veronie.bgg.ui/xyz.veronie.bgg.ui.parts.BggResultPart" label="BGG Result"/> | |||||
<children xsi:type="basic:PartStack" xmi:id="_7hQw0EqTEeqT5sxfmvJ5Tg" elementId="xyz.veronie.bgg.ui.partstack.bggresult" containerData="600"> | |||||
<children xsi:type="basic:Part" xmi:id="_-Mdy0EqTEeqT5sxfmvJ5Tg" elementId="de.wt.bgg.ui.part.gamesconfig" contributionURI="bundleclass://xyz.veronie.bgg.ui/xyz.veronie.bgg.ui.parts.LoadThingDetailsPart" label="Load game details"/> | |||||
</children> | </children> | ||||
</children> | </children> | ||||
<children xsi:type="basic:PartSashContainer" xmi:id="_AF1vQEqUEeqT5sxfmvJ5Tg" elementId="xyz.veronie.bgg.ui.partsashcontainer.gamelist"> | <children xsi:type="basic:PartSashContainer" xmi:id="_AF1vQEqUEeqT5sxfmvJ5Tg" elementId="xyz.veronie.bgg.ui.partsashcontainer.gamelist"> | ||||
<children xsi:type="basic:PartStack" xmi:id="_0MbRQEqTEeqT5sxfmvJ5Tg" elementId="de.wt.bgg.ui.partstack.gameslistconf"> | |||||
<children xsi:type="basic:Part" xmi:id="_-Mdy0EqTEeqT5sxfmvJ5Tg" elementId="de.wt.bgg.ui.part.gamesconfig" contributionURI="bundleclass://xyz.veronie.bgg.ui/xyz.veronie.bgg.ui.parts.LoadThingDetailsPart" label="Load game details"/> | |||||
</children> | |||||
<children xsi:type="basic:PartStack" xmi:id="_CS1yUEqUEeqT5sxfmvJ5Tg" elementId="de.wt.bgg.ui.partstack.gameslist"> | |||||
<children xsi:type="basic:PartStack" xmi:id="_0MbRQEqTEeqT5sxfmvJ5Tg" elementId="de.wt.bgg.ui.partstack.gameslist" containerData="300"> | |||||
<children xsi:type="basic:Part" xmi:id="_97XbwEqTEeqT5sxfmvJ5Tg" elementId="xyz.veronie.bgg.ui.part.resulttable" contributionURI="bundleclass://xyz.veronie.bgg.ui/xyz.veronie.bgg.ui.parts.BggResultPart" label="BGG Result"/> | |||||
<children xsi:type="basic:Part" xmi:id="_Ckm3wEqUEeqT5sxfmvJ5Tg" elementId="de.wt.bgg.ui.part.gamestable" contributionURI="bundleclass://xyz.veronie.bgg.ui/xyz.veronie.bgg.ui.parts.ThingListPart" label="Games list"/> | <children xsi:type="basic:Part" xmi:id="_Ckm3wEqUEeqT5sxfmvJ5Tg" elementId="de.wt.bgg.ui.part.gamestable" contributionURI="bundleclass://xyz.veronie.bgg.ui/xyz.veronie.bgg.ui.parts.ThingListPart" label="Games list"/> | ||||
</children> | </children> | ||||
</children> | </children> | ||||
</children> | </children> | ||||
<children xsi:type="advanced:Area" xmi:id="_8nEs4EqUEeqT5sxfmvJ5Tg" elementId="xyz.veronie.bgg.ui.area.status" containerData="100" label="Status"/> | |||||
</children> | </children> | ||||
<mainMenu xmi:id="_wtXeQEs0EeqGDvPDavxXPQ" elementId="org.eclipse.ui.main.menu"/> | <mainMenu xmi:id="_wtXeQEs0EeqGDvPDavxXPQ" elementId="org.eclipse.ui.main.menu"/> | ||||
<trimBars xmi:id="_1nq0UFu3Eeq4377K74W4EQ" elementId="xyz.veronie.bgg.ui.status" side="Bottom"> | |||||
<children xsi:type="menu:ToolBar" xmi:id="_JFF2UFu4Eeq4377K74W4EQ" elementId="xyz.veronie.bgg.ui.toolbar.0"> | |||||
<children xsi:type="menu:ToolControl" xmi:id="_xUKiUFu4Eeq4377K74W4EQ" elementId="xyz.veronie.bgg.ui.toolcontrol.status" contributionURI="bundleclass://xyz.veronie.bgg.ui/xyz.veronie.bgg.ui.parts.StatusBar"/> | |||||
</children> | |||||
</trimBars> | |||||
</children> | </children> | ||||
<addons xmi:id="_Lw_ZsUqSEeqT5sxfmvJ5Tg" elementId="org.eclipse.e4.core.commands.service" contributionURI="bundleclass://org.eclipse.e4.core.commands/org.eclipse.e4.core.commands.CommandServiceAddon"/> | <addons xmi:id="_Lw_ZsUqSEeqT5sxfmvJ5Tg" elementId="org.eclipse.e4.core.commands.service" contributionURI="bundleclass://org.eclipse.e4.core.commands/org.eclipse.e4.core.commands.CommandServiceAddon"/> | ||||
<addons xmi:id="_Lw_ZskqSEeqT5sxfmvJ5Tg" elementId="org.eclipse.e4.ui.contexts.service" contributionURI="bundleclass://org.eclipse.e4.ui.services/org.eclipse.e4.ui.services.ContextServiceAddon"/> | <addons xmi:id="_Lw_ZskqSEeqT5sxfmvJ5Tg" elementId="org.eclipse.e4.ui.contexts.service" contributionURI="bundleclass://org.eclipse.e4.ui.services/org.eclipse.e4.ui.services.ContextServiceAddon"/> | ||||
@@ -32,6 +32,22 @@ public class ResultConfig { | |||||
public Integer geeklistId = null; | public Integer geeklistId = null; | ||||
public Integer familyId = null; | public Integer familyId = null; | ||||
// TODO: add others | // TODO: add others | ||||
@Override | |||||
public String toString() { | |||||
switch(source) { | |||||
case BGG_USER: | |||||
return "user = " + user; | |||||
case GEEKLIST: | |||||
return "Geeklist #" + geeklistId; | |||||
case FAMILY: | |||||
return "Family #" + familyId; | |||||
default: | |||||
return ""; | |||||
} | |||||
} | |||||
} | } |
@@ -12,7 +12,7 @@ public class ThingMetaData { | |||||
private String comment; | private String comment; | ||||
private Integer numPlays; | private Integer numPlays; | ||||
private static String[] titles = { "Id", "Name", "Image", "Thumb", "comment", "# plays"}; | |||||
private static String[] titles = { "Id", "Name" }; //, "Image", "Thumb", "comment", "# plays"}; | |||||
private PropertyChangeSupport propertyChangeSupport = new PropertyChangeSupport(this); | private PropertyChangeSupport propertyChangeSupport = new PropertyChangeSupport(this); | ||||
@@ -55,18 +55,22 @@ public class ThingMetaData { | |||||
case 1: | case 1: | ||||
returnStr = this.name; | returnStr = this.name; | ||||
break; | break; | ||||
case 2: | |||||
returnStr = this.imgURL; | |||||
break; | |||||
case 3: | |||||
returnStr = this.thumbURL; | |||||
break; | |||||
case 4: | |||||
returnStr = this.comment; | |||||
break; | |||||
case 5: | |||||
returnStr = String.valueOf(this.numPlays); | |||||
break; | |||||
// case 2: | |||||
// returnStr = this.imgURL; | |||||
// break; | |||||
// case 3: | |||||
// returnStr = this.thumbURL; | |||||
// break; | |||||
// case 4: | |||||
// returnStr = this.comment; | |||||
// break; | |||||
// case 5: | |||||
// if (this.numPlays == null) { | |||||
// returnStr = ""; | |||||
// } else { | |||||
// returnStr = String.valueOf(this.numPlays); | |||||
// } | |||||
// break; | |||||
default: | default: | ||||
throw new ArrayIndexOutOfBoundsException( | throw new ArrayIndexOutOfBoundsException( | ||||
"idx " + String.valueOf(idx) + " must be in [0," + (titles.length-1) + "]"); | "idx " + String.valueOf(idx) + " must be in [0," + (titles.length-1) + "]"); | ||||
@@ -20,5 +20,6 @@ public interface EventConstants { | |||||
String TOPIC_RESULT_CHANGED = "RESULT_CHANGED"; | String TOPIC_RESULT_CHANGED = "RESULT_CHANGED"; | ||||
String TOPIC_STATUS = "STATUS"; | |||||
} | } |
@@ -1,11 +1,11 @@ | |||||
package xyz.veronie.bgg.types; | package xyz.veronie.bgg.types; | ||||
public enum ResultAction { | public enum ResultAction { | ||||
ADD("add"), | |||||
ADD("add to"), | |||||
REP("replace"), | REP("replace"), | ||||
SUB("subtract"), | |||||
AND("and"), | |||||
MIS("mis"); | |||||
SUB("subtract from"), | |||||
AND("intercept with"); | |||||
//MIS("mis"); | |||||
private String name; | private String name; | ||||
@@ -26,6 +26,8 @@ public class GeeklistSourceFilter { | |||||
@Inject private IEventBroker eventBroker; | @Inject private IEventBroker eventBroker; | ||||
@Inject private ResultConfigManager configManager; | @Inject private ResultConfigManager configManager; | ||||
private Label confLabel; | |||||
public void create(Composite parent, int style) { | public void create(Composite parent, int style) { | ||||
GridLayout filterLayout = new GridLayout(2, false); | GridLayout filterLayout = new GridLayout(2, false); | ||||
parent.setLayout(filterLayout); | parent.setLayout(filterLayout); | ||||
@@ -66,12 +68,20 @@ public class GeeklistSourceFilter { | |||||
// nothing | // nothing | ||||
} | } | ||||
}); | }); | ||||
confLabel = new Label(parent, SWT.LEFT); | |||||
confLabel.setText(""); | |||||
GridData gd = new GridData(SWT.FILL, SWT.FILL, false, false); | |||||
gd.horizontalSpan = 2; | |||||
confLabel.setLayoutData(gd); | |||||
parent.layout(); | parent.layout(); | ||||
} | } | ||||
public void setGeeklistId(Integer geeklistId) { | public void setGeeklistId(Integer geeklistId) { | ||||
if(eventBroker != null) { | if(eventBroker != null) { | ||||
eventBroker.post(EventConstants.TOPIC_GEEKLIST_CHANGED, geeklistId); | eventBroker.post(EventConstants.TOPIC_GEEKLIST_CHANGED, geeklistId); | ||||
confLabel.setText("Geeklist #" + geeklistId); | |||||
} else { | } else { | ||||
System.out.println("setGeeklistId: eventBroker is null."); | System.out.println("setGeeklistId: eventBroker is null."); | ||||
} | } | ||||
@@ -66,7 +66,7 @@ public class BggResultPart { | |||||
// This will create the columns for the table | // This will create the columns for the table | ||||
private void createColumns(final Composite parent, final TableViewer viewer) { | private void createColumns(final Composite parent, final TableViewer viewer) { | ||||
String[] titles = ThingMetaData.getTitles(); | String[] titles = ThingMetaData.getTitles(); | ||||
int[] bounds = { 100, 100, 100, 100, 100, 100 }; | |||||
int[] bounds = { 100, 500 }; // , 100, 100, 100, 100 }; | |||||
for(int i = 0; i < titles.length; ++i) { | for(int i = 0; i < titles.length; ++i) { | ||||
TableViewerColumn col = createTableViewerColumn(titles[i], bounds[i], i); | TableViewerColumn col = createTableViewerColumn(titles[i], bounds[i], i); | ||||
@@ -7,6 +7,7 @@ import javax.annotation.PostConstruct; | |||||
import javax.inject.Inject; | import javax.inject.Inject; | ||||
import org.eclipse.e4.core.services.events.IEventBroker; | import org.eclipse.e4.core.services.events.IEventBroker; | ||||
import org.eclipse.jface.dialogs.MessageDialog; | |||||
import org.eclipse.jface.viewers.ArrayContentProvider; | import org.eclipse.jface.viewers.ArrayContentProvider; | ||||
import org.eclipse.jface.viewers.ComboViewer; | import org.eclipse.jface.viewers.ComboViewer; | ||||
import org.eclipse.jface.viewers.ISelectionChangedListener; | import org.eclipse.jface.viewers.ISelectionChangedListener; | ||||
@@ -16,7 +17,6 @@ import org.eclipse.jface.viewers.StructuredSelection; | |||||
import org.eclipse.swt.SWT; | import org.eclipse.swt.SWT; | ||||
import org.eclipse.swt.events.SelectionAdapter; | import org.eclipse.swt.events.SelectionAdapter; | ||||
import org.eclipse.swt.events.SelectionEvent; | import org.eclipse.swt.events.SelectionEvent; | ||||
import org.eclipse.swt.graphics.Image; | |||||
import org.eclipse.swt.layout.GridData; | import org.eclipse.swt.layout.GridData; | ||||
import org.eclipse.swt.layout.GridLayout; | import org.eclipse.swt.layout.GridLayout; | ||||
import org.eclipse.swt.widgets.Button; | import org.eclipse.swt.widgets.Button; | ||||
@@ -65,44 +65,44 @@ public class LoadFromBggPart { | |||||
Composite main = new Composite(parent, SWT.FILL); | Composite main = new Composite(parent, SWT.FILL); | ||||
main.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, false)); | main.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, false)); | ||||
GridLayout layout = new GridLayout(2, false); | |||||
GridLayout layout = new GridLayout(5, false); | |||||
main.setLayout(layout); | main.setLayout(layout); | ||||
// contains configuration options for download of the bgg thing ID list | |||||
Group dlConfigGroup = new Group(main, SWT.SHADOW_ETCHED_IN); | |||||
GridData configGrid = new GridData(SWT.FILL, SWT.FILL, true, true); | |||||
dlConfigGroup.setText("Configure download..."); | |||||
dlConfigGroup.setLayoutData(configGrid); | |||||
// // contains configuration options for download of the bgg thing ID list | |||||
// Group dlConfigGroup = new Group(main, SWT.SHADOW_ETCHED_IN); | |||||
// GridData configGrid = new GridData(SWT.FILL, SWT.FILL, true, true); | |||||
// dlConfigGroup.setText("Configure filters..."); | |||||
// dlConfigGroup.setLayoutData(configGrid); | |||||
// GridLayout layoutG = new GridLayout(2, false); | |||||
// dlConfigGroup.setLayout(layoutG); | |||||
GridLayout layoutG = new GridLayout(2, false); | |||||
dlConfigGroup.setLayout(layoutG); | |||||
Label lblSource = new Label(dlConfigGroup, SWT.LEFT); | |||||
Label lblSource = new Label(main, SWT.LEFT); | |||||
lblSource.setText("Source: "); | lblSource.setText("Source: "); | ||||
lblSource.setLayoutData(new GridData(SWT.RIGHT, SWT.FILL, false, false)); | |||||
lblSource.setLayoutData(new GridData(SWT.LEFT, SWT.FILL, false, false)); | |||||
// choose the bgg data source | // choose the bgg data source | ||||
ComboViewer cbSource = new ComboViewer(dlConfigGroup, SWT.READ_ONLY); | |||||
ComboViewer cbSource = new ComboViewer(main, SWT.READ_ONLY); | |||||
cbSource.getCombo().setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1)); | |||||
cbSource.setContentProvider(ArrayContentProvider.getInstance()); | cbSource.setContentProvider(ArrayContentProvider.getInstance()); | ||||
List<SourceFilter> sources = new ArrayList<SourceFilter>(); | List<SourceFilter> sources = new ArrayList<SourceFilter>(); | ||||
for(SourceFilter sf : SourceFilter.values()) { | for(SourceFilter sf : SourceFilter.values()) { | ||||
sources.add(sf); | sources.add(sf); | ||||
} | } | ||||
cbSource.setInput(sources); | cbSource.setInput(sources); | ||||
// TODO: implement all the sources | // TODO: implement all the sources | ||||
cbSource.setSelection(new StructuredSelection(configManager.getResultConfig().source)); | cbSource.setSelection(new StructuredSelection(configManager.getResultConfig().source)); | ||||
// listener is configured further below | // listener is configured further below | ||||
makeEmptySpace(main, 1); | |||||
// choose the thing sub-type | // choose the thing sub-type | ||||
Label lblSubtype = new Label(dlConfigGroup, SWT.LEFT); | |||||
Label lblSubtype = new Label(main, SWT.LEFT); | |||||
lblSubtype.setText("Subtypes: "); | lblSubtype.setText("Subtypes: "); | ||||
lblSubtype.setLayoutData(new GridData(SWT.RIGHT, SWT.FILL, false, false)); | lblSubtype.setLayoutData(new GridData(SWT.RIGHT, SWT.FILL, false, false)); | ||||
ComboViewer cbSubtypes = new ComboViewer(dlConfigGroup, SWT.READ_ONLY); | |||||
ComboViewer cbSubtypes = new ComboViewer(main, SWT.READ_ONLY); | |||||
cbSubtypes.getCombo().setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, false)); | |||||
cbSubtypes.setContentProvider(ArrayContentProvider.getInstance()); | cbSubtypes.setContentProvider(ArrayContentProvider.getInstance()); | ||||
List<Subtype> subtypes = new ArrayList<Subtype>(); | List<Subtype> subtypes = new ArrayList<Subtype>(); | ||||
for (Subtype st : Subtype.values()) { | for (Subtype st : Subtype.values()) { | ||||
@@ -117,32 +117,17 @@ public class LoadFromBggPart { | |||||
eventBroker.send(EventConstants.TOPIC_SUBTYPE_CHANGED, selection.getFirstElement()); | eventBroker.send(EventConstants.TOPIC_SUBTYPE_CHANGED, selection.getFirstElement()); | ||||
} | } | ||||
}); | }); | ||||
// choose action on result list | |||||
Label lblAct = new Label(dlConfigGroup, SWT.LEFT); | |||||
lblAct.setText("Action on result: "); | |||||
lblAct.setLayoutData(new GridData(SWT.RIGHT, SWT.FILL, false, false)); | |||||
ComboViewer cbAct = new ComboViewer(dlConfigGroup, SWT.READ_ONLY); | |||||
cbAct.setContentProvider(ArrayContentProvider.getInstance()); | |||||
List<ResultAction> actions = new ArrayList<ResultAction>(); | |||||
for(ResultAction act : ResultAction.values()) { | |||||
actions.add(act); | |||||
} | |||||
cbAct.setInput(actions); | |||||
cbAct.setSelection(new StructuredSelection(configManager.getResultConfig().action)); | |||||
cbAct.addSelectionChangedListener(new ISelectionChangedListener() { | |||||
@Override | |||||
public void selectionChanged(SelectionChangedEvent event) { | |||||
IStructuredSelection selection = (IStructuredSelection) event.getSelection(); | |||||
eventBroker.send(EventConstants.TOPIC_ACTION_CHANGED, selection.getFirstElement()); | |||||
} | |||||
}); | |||||
// area to display filter controls in | |||||
// next row: | |||||
// area to display filter controls in | |||||
Group gFilters = new Group(main, SWT.SHADOW_ETCHED_IN); | Group gFilters = new Group(main, SWT.SHADOW_ETCHED_IN); | ||||
gFilters.setText(""); | gFilters.setText(""); | ||||
gFilters.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, false)); | |||||
GridData gdf = new GridData(SWT.FILL, SWT.FILL, false, false); | |||||
gdf.horizontalSpan = 5; | |||||
gFilters.setLayoutData(gdf); | |||||
showFilter(gFilters, (IStructuredSelection)cbSource.getSelection()); // set content to initial selection | showFilter(gFilters, (IStructuredSelection)cbSource.getSelection()); // set content to initial selection | ||||
cbSource.addSelectionChangedListener(new ISelectionChangedListener() { // later, its content will be set via the dropdown | cbSource.addSelectionChangedListener(new ISelectionChangedListener() { // later, its content will be set via the dropdown | ||||
@@ -156,26 +141,23 @@ public class LoadFromBggPart { | |||||
}); | }); | ||||
// next row: | |||||
makeEmptySpace(main, 5); | |||||
// next row | |||||
Label empty = new Label(main, SWT.LEFT); | |||||
empty.setText(""); | |||||
empty.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, false)); | |||||
// Start retrieval when download button is pushed | |||||
// choose action on result list | |||||
Button btDownload = new Button(main, SWT.PUSH); | Button btDownload = new Button(main, SWT.PUSH); | ||||
// TODO: how do I locate icons? | |||||
try { | |||||
Image dlIcon = new Image(getDisplay(), | |||||
getClass().getResourceAsStream("C:\\Users/goya/workspace/icons/icons/material_design/png/download-button.png")); | |||||
btDownload.setImage(dlIcon); | |||||
} | |||||
catch(Exception ex) { | |||||
btDownload.setText("Download now"); | |||||
} | |||||
GridData gd = new GridData(SWT.LEFT, SWT.FILL, false, false); | |||||
gd.horizontalSpan = 2; | |||||
btDownload.setLayoutData(gd); | |||||
btDownload.setText("Fetch"); | |||||
btDownload.addSelectionListener(new SelectionAdapter() { | btDownload.addSelectionListener(new SelectionAdapter() { | ||||
@Override | @Override | ||||
public void widgetSelected(SelectionEvent e) { | public void widgetSelected(SelectionEvent e) { | ||||
System.out.println("Downloading " + cbSource.getSelection().toString()); | |||||
eventBroker.send(EventConstants.TOPIC_STATUS, "Fetching " + cbSource.getSelection().toString()); | |||||
ResultConfig resultConfig = configManager.getResultConfig(); | ResultConfig resultConfig = configManager.getResultConfig(); | ||||
IStructuredSelection selection = (IStructuredSelection) cbSource.getSelection(); | IStructuredSelection selection = (IStructuredSelection) cbSource.getSelection(); | ||||
@@ -184,7 +166,7 @@ public class LoadFromBggPart { | |||||
if(selection.getFirstElement() == SourceFilter.BGG_USER) { | if(selection.getFirstElement() == SourceFilter.BGG_USER) { | ||||
String user = resultConfig.user; | String user = resultConfig.user; | ||||
if(user == null || user.isEmpty()) { | if(user == null || user.isEmpty()) { | ||||
System.out.println("Please enter a user name."); | |||||
MessageDialog.openError(main.getShell(), "", "Please enter a user name."); | |||||
return; | return; | ||||
} else { | } else { | ||||
System.out.println("...for user '" + user + "'"); | System.out.println("...for user '" + user + "'"); | ||||
@@ -196,7 +178,7 @@ public class LoadFromBggPart { | |||||
} else if(selection.getFirstElement() == SourceFilter.GEEKLIST) { | } else if(selection.getFirstElement() == SourceFilter.GEEKLIST) { | ||||
Integer geeklistId = resultConfig.geeklistId; | Integer geeklistId = resultConfig.geeklistId; | ||||
if(geeklistId == null) { | if(geeklistId == null) { | ||||
System.out.println("Please enter a geeklist id."); | |||||
MessageDialog.openError(main.getShell(), "", "Please enter a geeklist id."); | |||||
return; | return; | ||||
} else { | } else { | ||||
System.out.println("...for geeklist id '" + geeklistId + "'"); | System.out.println("...for geeklist id '" + geeklistId + "'"); | ||||
@@ -218,7 +200,46 @@ public class LoadFromBggPart { | |||||
} | } | ||||
} | } | ||||
}); | }); | ||||
btDownload.setLayoutData(new GridData(SWT.RIGHT, SWT.FILL, false, false)); | |||||
Label lblAct = new Label(main, SWT.LEFT); | |||||
lblAct.setText("and"); | |||||
lblAct.setLayoutData(new GridData(SWT.CENTER, SWT.FILL, false, false)); | |||||
ComboViewer cbAct = new ComboViewer(main, SWT.READ_ONLY); | |||||
GridData gdact = new GridData(SWT.FILL, SWT.FILL, false, false); | |||||
cbSubtypes.getCombo().setLayoutData(gdact); | |||||
cbAct.setContentProvider(ArrayContentProvider.getInstance()); | |||||
List<ResultAction> actions = new ArrayList<ResultAction>(); | |||||
for(ResultAction act : ResultAction.values()) { | |||||
actions.add(act); | |||||
} | |||||
cbAct.setInput(actions); | |||||
cbAct.setSelection(new StructuredSelection(configManager.getResultConfig().action)); | |||||
cbAct.addSelectionChangedListener(new ISelectionChangedListener() { | |||||
@Override | |||||
public void selectionChanged(SelectionChangedEvent event) { | |||||
IStructuredSelection selection = (IStructuredSelection) event.getSelection(); | |||||
eventBroker.send(EventConstants.TOPIC_ACTION_CHANGED, selection.getFirstElement()); | |||||
} | |||||
}); | |||||
Label toResultLabel = new Label(main, SWT.LEFT); | |||||
toResultLabel.setText("result"); | |||||
toResultLabel.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, false)); | |||||
// // Start retrieval when download button is pushed | |||||
// // TODO: how do I locate icons? | |||||
// Button btDownload = new Button(main, SWT.PUSH); | |||||
// try { | |||||
// Image dlIcon = new Image(getDisplay(), | |||||
// getClass().getResourceAsStream("C:\\Users/goya/workspace/icons/icons/material_design/png/download-button.png")); | |||||
// btDownload.setImage(dlIcon); | |||||
// } | |||||
// catch(Exception ex) { | |||||
// btDownload.setText("Download now"); | |||||
// } | |||||
main.pack(); | main.pack(); | ||||
@@ -275,6 +296,15 @@ public class LoadFromBggPart { | |||||
return display; | return display; | ||||
} | } | ||||
public void makeEmptySpace(Composite parent, int span) { | |||||
Label empty = new Label(parent, SWT.LEFT); | |||||
empty.setText(""); | |||||
GridData gde = new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1); | |||||
if(span > 1) { | |||||
gde.horizontalSpan = span; | |||||
} | |||||
empty.setLayoutData(gde); | |||||
} | |||||
// DISPOSE images! | |||||
} | } |
@@ -0,0 +1,40 @@ | |||||
package xyz.veronie.bgg.ui.parts; | |||||
import javax.annotation.PostConstruct; | |||||
import javax.inject.Inject; | |||||
import org.eclipse.e4.core.di.annotations.Creatable; | |||||
import org.eclipse.e4.core.di.annotations.Optional; | |||||
import org.eclipse.e4.ui.di.UIEventTopic; | |||||
import org.eclipse.swt.SWT; | |||||
import org.eclipse.swt.widgets.Composite; | |||||
import org.eclipse.swt.widgets.Label; | |||||
import xyz.veronie.bgg.types.EventConstants; | |||||
@Creatable | |||||
public class StatusBar { | |||||
private Label statusLabel; | |||||
private Composite main; | |||||
@PostConstruct | |||||
public void createControls(Composite parent) { | |||||
main = new Composite(parent, SWT.FILL); | |||||
statusLabel = new Label(main, SWT.FILL); | |||||
statusLabel.setText("ASDF"); | |||||
} | |||||
@Inject | |||||
@Optional | |||||
private void subscribeTopicSourceChanged | |||||
(@UIEventTopic(EventConstants.TOPIC_STATUS) | |||||
String text) { | |||||
statusLabel.setText(text); | |||||
main.layout(); | |||||
System.out.println("Status: " + text); | |||||
} | |||||
} |