| @@ -181,15 +181,62 @@ public class BggApi { | |||||
| Node nNode = nList.item(i); | Node nNode = nList.item(i); | ||||
| if (nNode.getNodeType() == Node.ELEMENT_NODE) { | if (nNode.getNodeType() == Node.ELEMENT_NODE) { | ||||
| Element eElement = (Element) nNode; | Element eElement = (Element) nNode; | ||||
| ThingMetaData tmd = new ThingMetaData( | |||||
| Integer.parseInt(eElement.getAttribute("objectid")), | |||||
| getValue(eElement, "name"), | |||||
| getValue(eElement, "image"), | |||||
| getValue(eElement, "thumbnail"), | |||||
| getValue(eElement, "comment"), | |||||
| Integer.parseInt(getValue(eElement, "numplays")) | |||||
| ); | |||||
| metas.add(tmd); | |||||
| // thing | |||||
| if( eElement.hasAttribute("objecttype") | |||||
| && eElement.getAttribute("objecttype").equals("thing")) | |||||
| { | |||||
| Integer id = Integer.parseInt(eElement.getAttribute("objectid")); | |||||
| if(id != 0) { | |||||
| ThingMetaData tmd = new ThingMetaData( | |||||
| id, | |||||
| getValue(eElement, "name"), | |||||
| getValue(eElement, "image"), | |||||
| getValue(eElement, "thumbnail"), | |||||
| getValue(eElement, "comment"), | |||||
| Integer.parseInt(getValue(eElement, "numplays")) | |||||
| ); | |||||
| metas.add(tmd); | |||||
| } | |||||
| } | |||||
| // family has "type" | |||||
| else if(eElement.hasAttribute("type") | |||||
| && eElement.getAttribute("type").equals("boardgamefamily")) | |||||
| { | |||||
| // get name and description | |||||
| StringBuilder fInfo = new StringBuilder(); | |||||
| NodeList nListName = eElement.getElementsByTagName("name"); | |||||
| if(nListName.getLength() > 0) { | |||||
| fInfo.append(nListName.item(0).getTextContent() + "\r\n"); | |||||
| } | |||||
| NodeList nListDesc = doc.getElementsByTagName("description"); | |||||
| if(nListDesc.getLength() > 0) { | |||||
| fInfo.append(nListDesc.item(0).getTextContent()); | |||||
| } | |||||
| eventBroker.send(EventConstants.TOPIC_FAMILY_INFO, fInfo.toString()); | |||||
| NodeList nLinks = eElement.getElementsByTagName("link"); | |||||
| for(int l = 0; l < nLinks.getLength(); l++) { | |||||
| Node link = nLinks.item(l); | |||||
| if (link.getNodeType() == Node.ELEMENT_NODE) { | |||||
| Element eLink = (Element) link; | |||||
| Integer id = Integer.parseInt(eLink.getAttribute("id")); | |||||
| if(id != 0) { | |||||
| ThingMetaData tmd = new ThingMetaData( | |||||
| id, | |||||
| eLink.getAttribute("value"), | |||||
| "", "", "", null); | |||||
| metas.add(tmd); | |||||
| } | |||||
| } | |||||
| } | |||||
| // because of our input, there shouldn't be more than one family in the result | |||||
| // but do not iterate over items just to make sure | |||||
| break; | |||||
| } | |||||
| } | } | ||||
| } | } | ||||
| } | } | ||||
| @@ -213,11 +260,14 @@ public class BggApi { | |||||
| Node nNode = nList.item(i); | Node nNode = nList.item(i); | ||||
| if (nNode.getNodeType() == Node.ELEMENT_NODE) { | if (nNode.getNodeType() == Node.ELEMENT_NODE) { | ||||
| Element eElement = (Element) nNode; | Element eElement = (Element) nNode; | ||||
| ThingMetaData tmd = new ThingMetaData( | |||||
| Integer.parseInt(eElement.getAttribute("objectid")), | |||||
| eElement.getAttribute("objectname"), | |||||
| "", "", "", null); | |||||
| metas.add(tmd); | |||||
| Integer id = Integer.parseInt(eElement.getAttribute("objectid")); | |||||
| if(id != 0) { | |||||
| ThingMetaData tmd = new ThingMetaData( | |||||
| Integer.parseInt(eElement.getAttribute("objectid")), | |||||
| eElement.getAttribute("objectname"), | |||||
| "", "", "", null); | |||||
| metas.add(tmd); | |||||
| } | |||||
| } | } | ||||
| } | } | ||||
| } | } | ||||
| @@ -14,7 +14,7 @@ public class ResultConfig { | |||||
| // TODO: integrate different filters (or extend?) | // TODO: integrate different filters (or extend?) | ||||
| public SourceFilter source = SourceFilter.BGG_USER; | public SourceFilter source = SourceFilter.BGG_USER; | ||||
| public ResultAction action = ResultAction.ADD; | |||||
| public ResultAction action = ResultAction.REP; | |||||
| public Subtype subtype = Subtype.BOARDGAME; | public Subtype subtype = Subtype.BOARDGAME; | ||||
| // bgg user filter settings | // bgg user filter settings | ||||
| @@ -2,6 +2,7 @@ package xyz.veronie.bgg.result; | |||||
| import java.util.ArrayList; | import java.util.ArrayList; | ||||
| import java.util.List; | import java.util.List; | ||||
| import java.util.function.Predicate; | |||||
| public enum ThingProvider { | public enum ThingProvider { | ||||
| INSTANCE; | INSTANCE; | ||||
| @@ -12,10 +13,41 @@ public enum ThingProvider { | |||||
| thingMetas = new ArrayList<ThingMetaData>(); | thingMetas = new ArrayList<ThingMetaData>(); | ||||
| } | } | ||||
| public void setThingMetas(ArrayList<ThingMetaData> metas) { | |||||
| public void replaceThingMetas(ArrayList<ThingMetaData> metas) { | |||||
| this.thingMetas = metas; | this.thingMetas = metas; | ||||
| } | } | ||||
| public void addThingMetas(ArrayList<ThingMetaData> metas) { | |||||
| this.thingMetas.addAll(metas); | |||||
| } | |||||
| public static Predicate<ThingMetaData> thingEqual(ThingMetaData other) | |||||
| { | |||||
| return p -> p.getId() == other.getId(); | |||||
| } | |||||
| public void subtractThingMetas(ArrayList<ThingMetaData> metas) { | |||||
| for(ThingMetaData tmd : metas) { | |||||
| this.thingMetas.removeIf(thingEqual(tmd)); | |||||
| } | |||||
| } | |||||
| public void intersectThingMetas(ArrayList<ThingMetaData> metas) { | |||||
| List<ThingMetaData> cpMetas = new ArrayList<ThingMetaData>(this.thingMetas); | |||||
| this.thingMetas.clear(); | |||||
| for(ThingMetaData tmd : metas) { | |||||
| for(ThingMetaData thisTmd : cpMetas) { | |||||
| if(tmd.getId() == thisTmd.getId()) { | |||||
| this.thingMetas.add(tmd); | |||||
| } | |||||
| } | |||||
| } | |||||
| } | |||||
| public List<ThingMetaData> getThingMetas() { | public List<ThingMetaData> getThingMetas() { | ||||
| return thingMetas; | return thingMetas; | ||||
| } | } | ||||
| @@ -24,4 +24,6 @@ public interface EventConstants { | |||||
| String TOPIC_GEEKLIST_INFO = "INFO/GEEKLIST"; | String TOPIC_GEEKLIST_INFO = "INFO/GEEKLIST"; | ||||
| String TOPIC_FAMILY_INFO = "INFO/FAMILY"; | |||||
| } | } | ||||
| @@ -1,14 +1,24 @@ | |||||
| package xyz.veronie.bgg.ui.filters; | package xyz.veronie.bgg.ui.filters; | ||||
| import javax.inject.Inject; | |||||
| import org.eclipse.e4.core.di.annotations.Creatable; | |||||
| import org.eclipse.e4.core.services.events.IEventBroker; | |||||
| import org.eclipse.swt.SWT; | import org.eclipse.swt.SWT; | ||||
| 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.Composite; | import org.eclipse.swt.widgets.Composite; | ||||
| import org.eclipse.swt.widgets.Label; | import org.eclipse.swt.widgets.Label; | ||||
| import xyz.veronie.bgg.result.ResultConfigManager; | |||||
| @Creatable | |||||
| public class AgeSourceFilter { | public class AgeSourceFilter { | ||||
| public static void create(Composite parent, int style) { | |||||
| @Inject private IEventBroker eventBroker; | |||||
| @Inject private ResultConfigManager configManager; | |||||
| 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); | ||||
| @@ -3,9 +3,12 @@ package xyz.veronie.bgg.ui.filters; | |||||
| import javax.inject.Inject; | import javax.inject.Inject; | ||||
| import org.eclipse.e4.core.di.annotations.Creatable; | import org.eclipse.e4.core.di.annotations.Creatable; | ||||
| import org.eclipse.e4.core.di.annotations.Optional; | |||||
| import org.eclipse.e4.core.services.events.IEventBroker; | import org.eclipse.e4.core.services.events.IEventBroker; | ||||
| import org.eclipse.e4.ui.di.UIEventTopic; | |||||
| import org.eclipse.jface.dialogs.MessageDialog; | import org.eclipse.jface.dialogs.MessageDialog; | ||||
| import org.eclipse.swt.SWT; | import org.eclipse.swt.SWT; | ||||
| import org.eclipse.swt.custom.StyledText; | |||||
| import org.eclipse.swt.events.FocusEvent; | import org.eclipse.swt.events.FocusEvent; | ||||
| import org.eclipse.swt.events.FocusListener; | import org.eclipse.swt.events.FocusListener; | ||||
| import org.eclipse.swt.events.SelectionAdapter; | import org.eclipse.swt.events.SelectionAdapter; | ||||
| @@ -25,6 +28,7 @@ public class FamilySourceFilter { | |||||
| @Inject private IEventBroker eventBroker; | @Inject private IEventBroker eventBroker; | ||||
| @Inject private ResultConfigManager configManager; | @Inject private ResultConfigManager configManager; | ||||
| private StyledText 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); | ||||
| @@ -36,11 +40,17 @@ public class FamilySourceFilter { | |||||
| Combo cbFamilyId = new Combo(parent, SWT.DROP_DOWN); | Combo cbFamilyId = new Combo(parent, SWT.DROP_DOWN); | ||||
| cbFamilyId.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, false)); | cbFamilyId.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, false)); | ||||
| Integer fid = configManager.getResultConfig().familyId; | |||||
| if(fid != null) { | |||||
| cbFamilyId.setText(Integer.toString(fid)); | |||||
| } | |||||
| cbFamilyId.addSelectionListener(new SelectionAdapter() { | cbFamilyId.addSelectionListener(new SelectionAdapter() { | ||||
| public void widgetDefaultSelected(SelectionEvent e) { | public void widgetDefaultSelected(SelectionEvent e) { | ||||
| try { | try { | ||||
| setFamilyId(Integer.parseInt(cbFamilyId.getText())); | setFamilyId(Integer.parseInt(cbFamilyId.getText())); | ||||
| System.out.println("set family id to '" + configManager.getResultConfig().geeklistId + "'"); | |||||
| System.out.println("set family id to '" + configManager.getResultConfig().familyId + "'"); | |||||
| } | } | ||||
| catch (NumberFormatException ex) { | catch (NumberFormatException ex) { | ||||
| MessageDialog.openError(parent.getShell(), "Input error", "FamilyId must be a whole number."); | MessageDialog.openError(parent.getShell(), "Input error", "FamilyId must be a whole number."); | ||||
| @@ -67,6 +77,15 @@ public class FamilySourceFilter { | |||||
| // nothing | // nothing | ||||
| } | } | ||||
| }); | }); | ||||
| confLabel = new StyledText(parent, SWT.MULTI | SWT.READ_ONLY); | |||||
| confLabel.setText(""); | |||||
| confLabel.setWordWrap(true); | |||||
| confLabel.setBounds(10,10,100,100); | |||||
| GridData gd = new GridData(SWT.FILL, SWT.FILL, true, true); | |||||
| gd.horizontalSpan = 2; | |||||
| confLabel.setLayoutData(gd); | |||||
| parent.layout(); | parent.layout(); | ||||
| } | } | ||||
| @@ -78,4 +97,13 @@ public class FamilySourceFilter { | |||||
| System.out.println("setFamilyId: eventBroker is null."); | System.out.println("setFamilyId: eventBroker is null."); | ||||
| } | } | ||||
| } | } | ||||
| @Inject | |||||
| @Optional | |||||
| private void subscribeTopicGeeklistInfo | |||||
| (@UIEventTopic(EventConstants.TOPIC_FAMILY_INFO) | |||||
| String familyInfo) { | |||||
| confLabel.setText(familyInfo); | |||||
| confLabel.redraw(); | |||||
| } | |||||
| } | } | ||||
| @@ -40,6 +40,10 @@ public class GeeklistSourceFilter { | |||||
| lblGeeklist.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, false)); | lblGeeklist.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, false)); | ||||
| Combo cbGeeklistId = new Combo(parent, SWT.DROP_DOWN); | Combo cbGeeklistId = new Combo(parent, SWT.DROP_DOWN); | ||||
| Integer gid = configManager.getResultConfig().geeklistId; | |||||
| if(gid != null) { | |||||
| cbGeeklistId.setText(Integer.toString(gid)); | |||||
| } | |||||
| cbGeeklistId.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, false)); | cbGeeklistId.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, false)); | ||||
| cbGeeklistId.addSelectionListener(new SelectionAdapter() { | cbGeeklistId.addSelectionListener(new SelectionAdapter() { | ||||
| public void widgetDefaultSelected(SelectionEvent e) { | public void widgetDefaultSelected(SelectionEvent e) { | ||||
| @@ -72,7 +76,7 @@ public class GeeklistSourceFilter { | |||||
| } | } | ||||
| }); | }); | ||||
| confLabel = new StyledText(parent, SWT.MULTI | SWT.WRAP | SWT.READ_ONLY); | |||||
| confLabel = new StyledText(parent, SWT.MULTI | SWT.READ_ONLY); | |||||
| confLabel.setText(""); | confLabel.setText(""); | ||||
| confLabel.setWordWrap(true); | confLabel.setWordWrap(true); | ||||
| confLabel.setBounds(10,10,100,100); | confLabel.setBounds(10,10,100,100); | ||||
| @@ -88,7 +92,6 @@ public class GeeklistSourceFilter { | |||||
| 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."); | ||||
| } | } | ||||
| @@ -100,5 +103,6 @@ public class GeeklistSourceFilter { | |||||
| (@UIEventTopic(EventConstants.TOPIC_GEEKLIST_INFO) | (@UIEventTopic(EventConstants.TOPIC_GEEKLIST_INFO) | ||||
| String geeklistInfo) { | String geeklistInfo) { | ||||
| confLabel.setText(geeklistInfo); | confLabel.setText(geeklistInfo); | ||||
| confLabel.redraw(); | |||||
| } | } | ||||
| } | } | ||||
| @@ -1,14 +1,24 @@ | |||||
| package xyz.veronie.bgg.ui.filters; | package xyz.veronie.bgg.ui.filters; | ||||
| import javax.inject.Inject; | |||||
| import org.eclipse.e4.core.di.annotations.Creatable; | |||||
| import org.eclipse.e4.core.services.events.IEventBroker; | |||||
| import org.eclipse.swt.SWT; | import org.eclipse.swt.SWT; | ||||
| 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.Composite; | import org.eclipse.swt.widgets.Composite; | ||||
| import org.eclipse.swt.widgets.Label; | import org.eclipse.swt.widgets.Label; | ||||
| import xyz.veronie.bgg.result.ResultConfigManager; | |||||
| @Creatable | |||||
| public class RankSourceFilter { | public class RankSourceFilter { | ||||
| public static void create(Composite parent, int style) { | |||||
| @Inject private IEventBroker eventBroker; | |||||
| @Inject private ResultConfigManager configManager; | |||||
| 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); | ||||
| @@ -1,14 +1,24 @@ | |||||
| package xyz.veronie.bgg.ui.filters; | package xyz.veronie.bgg.ui.filters; | ||||
| import javax.inject.Inject; | |||||
| import org.eclipse.e4.core.di.annotations.Creatable; | |||||
| import org.eclipse.e4.core.services.events.IEventBroker; | |||||
| import org.eclipse.swt.SWT; | import org.eclipse.swt.SWT; | ||||
| 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.Composite; | import org.eclipse.swt.widgets.Composite; | ||||
| import org.eclipse.swt.widgets.Label; | import org.eclipse.swt.widgets.Label; | ||||
| import xyz.veronie.bgg.result.ResultConfigManager; | |||||
| @Creatable | |||||
| public class SearchSourceFilter { | public class SearchSourceFilter { | ||||
| public static void create(Composite parent, int style) { | |||||
| @Inject private IEventBroker eventBroker; | |||||
| @Inject private ResultConfigManager configManager; | |||||
| 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); | ||||
| @@ -1,14 +1,24 @@ | |||||
| package xyz.veronie.bgg.ui.filters; | package xyz.veronie.bgg.ui.filters; | ||||
| import javax.inject.Inject; | |||||
| import org.eclipse.e4.core.di.annotations.Creatable; | |||||
| import org.eclipse.e4.core.services.events.IEventBroker; | |||||
| import org.eclipse.swt.SWT; | import org.eclipse.swt.SWT; | ||||
| 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.Composite; | import org.eclipse.swt.widgets.Composite; | ||||
| import org.eclipse.swt.widgets.Label; | import org.eclipse.swt.widgets.Label; | ||||
| import xyz.veronie.bgg.result.ResultConfigManager; | |||||
| @Creatable | |||||
| public class YearSourceFilter { | public class YearSourceFilter { | ||||
| public static void create(Composite parent, int style) { | |||||
| @Inject private IEventBroker eventBroker; | |||||
| @Inject private ResultConfigManager configManager; | |||||
| 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); | ||||
| @@ -58,6 +58,10 @@ public class LoadFromBggPart { | |||||
| @Inject private BggUserSourceFilter bggUserSourceFilter; | @Inject private BggUserSourceFilter bggUserSourceFilter; | ||||
| @Inject private GeeklistSourceFilter geeklistSourceFilter; | @Inject private GeeklistSourceFilter geeklistSourceFilter; | ||||
| @Inject private FamilySourceFilter familySourceFilter; | @Inject private FamilySourceFilter familySourceFilter; | ||||
| @Inject private AgeSourceFilter ageSourceFilter; | |||||
| @Inject private RankSourceFilter rankSourceFilter; | |||||
| @Inject private YearSourceFilter yearSourceFilter; | |||||
| @Inject private SearchSourceFilter searchSourceFilter; | |||||
| @Inject private BggApi bggApi; | @Inject private BggApi bggApi; | ||||
| @PostConstruct | @PostConstruct | ||||
| @@ -171,8 +175,7 @@ public class LoadFromBggPart { | |||||
| eventBroker.send(EventConstants.TOPIC_STATUS, "Fetching " + selection.getFirstElement().toString() + " '" + user + "'..."); | eventBroker.send(EventConstants.TOPIC_STATUS, "Fetching " + selection.getFirstElement().toString() + " '" + user + "'..."); | ||||
| try { | try { | ||||
| ArrayList<ThingMetaData> thingMetas = bggApi.getThingsForUser(user); | ArrayList<ThingMetaData> thingMetas = bggApi.getThingsForUser(user); | ||||
| ThingProvider.INSTANCE.setThingMetas(thingMetas); | |||||
| eventBroker.send(EventConstants.TOPIC_RESULT_CHANGED, ""); | |||||
| useThingsOnResult(thingMetas); | |||||
| } | } | ||||
| catch(IllegalArgumentException ex) { | catch(IllegalArgumentException ex) { | ||||
| MessageDialog.openError(main.getShell(), "", ex.getMessage()); | MessageDialog.openError(main.getShell(), "", ex.getMessage()); | ||||
| @@ -188,8 +191,7 @@ public class LoadFromBggPart { | |||||
| eventBroker.send(EventConstants.TOPIC_STATUS, "Fetching for geeklist id '" + geeklistId + "'"); | eventBroker.send(EventConstants.TOPIC_STATUS, "Fetching for geeklist id '" + geeklistId + "'"); | ||||
| try { | try { | ||||
| ArrayList<ThingMetaData> thingMetas = bggApi.getThingsForGeeklist(geeklistId); | ArrayList<ThingMetaData> thingMetas = bggApi.getThingsForGeeklist(geeklistId); | ||||
| ThingProvider.INSTANCE.setThingMetas(thingMetas); | |||||
| eventBroker.send(EventConstants.TOPIC_RESULT_CHANGED, ""); | |||||
| useThingsOnResult(thingMetas); | |||||
| } | } | ||||
| catch(IllegalArgumentException ex) { | catch(IllegalArgumentException ex) { | ||||
| MessageDialog.openError(main.getShell(), "", ex.getMessage()); | MessageDialog.openError(main.getShell(), "", ex.getMessage()); | ||||
| @@ -204,8 +206,7 @@ public class LoadFromBggPart { | |||||
| eventBroker.send(EventConstants.TOPIC_STATUS, "Fetching for family id '" + familyId + "'"); | eventBroker.send(EventConstants.TOPIC_STATUS, "Fetching for family id '" + familyId + "'"); | ||||
| try { | try { | ||||
| ArrayList<ThingMetaData> thingMetas = bggApi.getThingsForFamily(familyId); | ArrayList<ThingMetaData> thingMetas = bggApi.getThingsForFamily(familyId); | ||||
| ThingProvider.INSTANCE.setThingMetas(thingMetas); | |||||
| eventBroker.send(EventConstants.TOPIC_RESULT_CHANGED, ""); | |||||
| useThingsOnResult(thingMetas); | |||||
| } | } | ||||
| catch(IllegalArgumentException ex) { | catch(IllegalArgumentException ex) { | ||||
| MessageDialog.openError(main.getShell(), "", ex.getMessage()); | MessageDialog.openError(main.getShell(), "", ex.getMessage()); | ||||
| @@ -213,6 +214,25 @@ public class LoadFromBggPart { | |||||
| } | } | ||||
| } | } | ||||
| } | } | ||||
| private void useThingsOnResult(ArrayList<ThingMetaData> thingMetas) { | |||||
| switch(configManager.getResultConfig().action) { | |||||
| case REP: | |||||
| ThingProvider.INSTANCE.replaceThingMetas(thingMetas); | |||||
| break; | |||||
| case ADD: | |||||
| ThingProvider.INSTANCE.addThingMetas(thingMetas); | |||||
| break; | |||||
| case SUB: | |||||
| ThingProvider.INSTANCE.subtractThingMetas(thingMetas); | |||||
| break; | |||||
| case AND: | |||||
| ThingProvider.INSTANCE.intersectThingMetas(thingMetas); | |||||
| break; | |||||
| } | |||||
| eventBroker.send(EventConstants.TOPIC_RESULT_CHANGED, ""); | |||||
| eventBroker.send(EventConstants.TOPIC_STATUS, "Fetched " + Integer.toString(thingMetas.size()) + " things."); | |||||
| } | |||||
| }); | }); | ||||
| @@ -284,16 +304,16 @@ public class LoadFromBggPart { | |||||
| familySourceFilter.create(parent, SWT.FILL); | familySourceFilter.create(parent, SWT.FILL); | ||||
| break; | break; | ||||
| case RANK: | case RANK: | ||||
| RankSourceFilter.create(parent, SWT.FILL); | |||||
| rankSourceFilter.create(parent, SWT.FILL); | |||||
| break; | break; | ||||
| case YEAR: | case YEAR: | ||||
| YearSourceFilter.create(parent, SWT.FILL); | |||||
| yearSourceFilter.create(parent, SWT.FILL); | |||||
| break; | break; | ||||
| case AGE: | case AGE: | ||||
| AgeSourceFilter.create(parent, SWT.FILL); | |||||
| ageSourceFilter.create(parent, SWT.FILL); | |||||
| break; | break; | ||||
| case SEARCH: | case SEARCH: | ||||
| SearchSourceFilter.create(parent, SWT.FILL); | |||||
| searchSourceFilter.create(parent, SWT.FILL); | |||||
| break; | break; | ||||
| default: | default: | ||||
| System.out.println("construct " + elem + " (not implemented yet, try another one)"); | System.out.println("construct " + elem + " (not implemented yet, try another one)"); | ||||