Selaa lähdekoodia

Implemented first version of output of thing to result line.

Slightly rearranged metadata (some fields are now in ThingUserData).
Filling ThingUserData when fetching by user with BggApi.
Added ExportResultHandler.
pull/16/head
veronie 4 vuotta sitten
vanhempi
commit
ee3e04c3eb
12 muutettua tiedostoa jossa 434 lisäystä ja 151 poistoa
  1. +2
    -0
      xyz.veronie.bgg.ui/Application.e4xmi
  2. +15
    -6
      xyz.veronie.bgg.ui/src/xyz/veronie/bgg/localdb/SqliteController.java
  3. +68
    -9
      xyz.veronie.bgg.ui/src/xyz/veronie/bgg/result/BggApi.java
  4. +8
    -0
      xyz.veronie.bgg.ui/src/xyz/veronie/bgg/result/Recommendation.java
  5. +159
    -4
      xyz.veronie.bgg.ui/src/xyz/veronie/bgg/result/Thing.java
  6. +2
    -10
      xyz.veronie.bgg.ui/src/xyz/veronie/bgg/result/ThingDetails.java
  7. +0
    -74
      xyz.veronie.bgg.ui/src/xyz/veronie/bgg/result/ThingDetailsComposite.java
  8. +1
    -28
      xyz.veronie.bgg.ui/src/xyz/veronie/bgg/result/ThingMetaData.java
  9. +134
    -0
      xyz.veronie.bgg.ui/src/xyz/veronie/bgg/result/ThingUserData.java
  10. +34
    -0
      xyz.veronie.bgg.ui/src/xyz/veronie/bgg/ui/handlers/ExportResultHandler.java
  11. +11
    -14
      xyz.veronie.bgg.ui/src/xyz/veronie/bgg/ui/parts/BatMain.java
  12. +0
    -6
      xyz.veronie.bgg.ui/src/xyz/veronie/bgg/ui/parts/ThingListPart.java

+ 2
- 0
xyz.veronie.bgg.ui/Application.e4xmi Näytä tiedosto

@@ -24,12 +24,14 @@
<handlers xmi:id="_a0tuEGAUEeuNUoCJDLJTzQ" elementId="xyz.veronie.bgg.ui.handler.save" contributionURI="bundleclass://xyz.veronie.bgg.ui/xyz.veronie.bgg.ui.handlers.SaveGamelistHandler" command="_lA5t8F9TEeuvNqpgCDWpdQ"/>
<handlers xmi:id="_xJXjUG3zEeuCP7xCflu8WA" elementId="xyz.veronie.bgg.ui.handler.load" contributionURI="bundleclass://xyz.veronie.bgg.ui/xyz.veronie.bgg.ui.handlers.LoadGamelistHandler" command="_qyrHAG3zEeuCP7xCflu8WA"/>
<handlers xmi:id="_y97SUG7REeutwMlAyj2x8w" elementId="xyz.veronie.bgg.ui.handler.importResultTxt" contributionURI="bundleclass://xyz.veronie.bgg.ui/xyz.veronie.bgg.ui.handlers.ImportResultTxtHandler" command="_rkauIG7REeutwMlAyj2x8w"/>
<handlers xmi:id="_I0EUoHOzEeuMU7Jt9moleA" elementId="xyz.veronie.bgg.ui.handler.export" contributionURI="bundleclass://xyz.veronie.bgg.ui/xyz.veronie.bgg.ui.handlers.ExportResultHandler" command="_OUnzIHOzEeuMU7Jt9moleA"/>
<menuContributions xmi:id="_AitwEHBeEeuk7d_98DxC5A" elementId="xyz.veronie.bgg.ui.menucontribution.gamelists" accessibilityPhrase="Game Lists" positionInParent="0">
<children xsi:type="menu:HandledMenuItem" xmi:id="_JvwHYHBeEeuk7d_98DxC5A" elementId="importResult" label="Import..." tooltip="Import thing list from bgg1tool result.txt file" command="_rkauIG7REeutwMlAyj2x8w"/>
</menuContributions>
<commands xmi:id="_lA5t8F9TEeuvNqpgCDWpdQ" elementId="xyz.veronie.bgg.ui.command.save" commandName="Save" description="save game list"/>
<commands xmi:id="_qyrHAG3zEeuCP7xCflu8WA" elementId="xyz.veronie.bgg.ui.command.load" commandName="Load" description="load game list"/>
<commands xmi:id="_rkauIG7REeutwMlAyj2x8w" elementId="xyz.veronie.bgg.ui.command.importResultTxt" commandName="ImportResultTxt" description="Import result.txt from bgg1tool"/>
<commands xmi:id="_OUnzIHOzEeuMU7Jt9moleA" elementId="xyz.veronie.bgg.ui.command.export" commandName="Export" description="export result.txt file"/>
<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_Zs0qSEeqT5sxfmvJ5Tg" elementId="org.eclipse.e4.ui.bindings.service" contributionURI="bundleclass://org.eclipse.e4.ui.bindings/org.eclipse.e4.ui.bindings.BindingServiceAddon"/>


+ 15
- 6
xyz.veronie.bgg.ui/src/xyz/veronie/bgg/localdb/SqliteController.java Näytä tiedosto

@@ -14,6 +14,7 @@ import java.util.List;
import xyz.veronie.bgg.result.Thing;
import xyz.veronie.bgg.result.ThingMetaData;
import xyz.veronie.bgg.result.ThingUserData;
import xyz.veronie.bgg.ui.helpers.Resources;
public class SqliteController {
@@ -181,10 +182,16 @@ public class SqliteController {
thingStatement.setString(2, metaData.getName());
thingStatement.setString(3, metaData.getImgURL());
thingStatement.setString(4, metaData.getThumbURL());
thingStatement.setString(5, metaData.getComment());
if(metaData.getNumPlays() != null) {
thingStatement.setInt(6, metaData.getNumPlays());
ThingUserData userData = thing.getUserData();
if(userData != null) {
thingStatement.setString(5, userData.getComment());
if(userData.getNumPlays() != null) {
thingStatement.setInt(6, userData.getNumPlays());
} else {
thingStatement.setNull(6, java.sql.Types.INTEGER);
}
} else {
thingStatement.setString(5, "");
thingStatement.setNull(6, java.sql.Types.INTEGER);
}
thingStatement.execute();
@@ -254,10 +261,12 @@ public class SqliteController {
ThingMetaData metaData = new ThingMetaData(id,
res.getString(2),
res.getString(3),
res.getString(4),
res.getString(5),
res.getInt(6));
res.getString(4));
ThingUserData userData = new ThingUserData();
userData.setComment(res.getString(5));
userData.setNumPlays(res.getInt(6));
Thing thing = new Thing(id, metaData);
thing.setUserData(userData);
thingList.add(thing);
}


+ 68
- 9
xyz.veronie.bgg.ui/src/xyz/veronie/bgg/result/BggApi.java Näytä tiedosto

@@ -78,6 +78,21 @@ public class BggApi {
return getThings(urlStr.toString());
}
public ArrayList<Thing> getThingDetails(Set<Integer> ids) {
StringBuilder urlStr = new StringBuilder();
urlStr.append(BASE_URL + "thing?id=");
String sep = "";
for (Integer integer : ids) {
urlStr.append(sep + integer.toString());
if(sep.isEmpty()) {
sep = ",";
}
}
return getThings(urlStr.toString());
}
public ArrayList<Thing> getThingsForUser(String user) throws IllegalArgumentException {
ResultConfig resultConfig = configManager.getResultConfig();
@@ -230,11 +245,51 @@ public class BggApi {
id,
getValue(eElement, "name"),
getValue(eElement, "image"),
getValue(eElement, "thumbnail"),
getValue(eElement, "comment"),
Integer.parseInt(getValue(eElement, "numplays"))
getValue(eElement, "thumbnail")
);
ThingUserData tud = new ThingUserData();
tud.setNumPlays(Integer.valueOf(getValue(eElement, "numplays")));
tud.setComment(getValue(eElement, "comment"));
// rating
NodeList statsNodes = eElement.getElementsByTagName("stats");
if(statsNodes.getLength() > 0) {
Node statsNode = statsNodes.item(0);
NodeList statsChildren = statsNode.getChildNodes();
if(statsChildren.getLength() > 0) {
Element ratingNode = (Element)statsChildren.item(0);
String ratingValue = ratingNode.getAttribute("value");
if(!ratingValue.equals("N/A")) {
try {
Float rating = Float.valueOf(ratingValue);
tud.setRating(rating);
}
catch(NumberFormatException e) {
System.out.println("WARN: rating value is not a float.");
}
}
}
}
NodeList statusNodes = eElement.getElementsByTagName("status");
if(statusNodes.getLength() > 0) {
Element statusNode = (Element)statusNodes.item(0);
tud.setOwn(attributeToBoolean(statusNode, "own"));
tud.setPrevowned(attributeToBoolean(statusNode, "prevowned"));
tud.setFortrade(attributeToBoolean(statusNode, "fortrade"));
tud.setWant(attributeToBoolean(statusNode, "want"));
tud.setWanttoplay(attributeToBoolean(statusNode, "wanttoplay"));
tud.setWanttobuy(attributeToBoolean(statusNode, "wanttobuy"));
tud.setWishlist(attributeToBoolean(statusNode, "wishlist"));
if(statusNode.hasAttribute("wishlistpriority")) {
tud.setWishlistpriority(Integer.valueOf(statusNode.getAttribute("wishlistpriority")));
}
tud.setPreordered(attributeToBoolean(statusNode, "preordered"));
tud.setLastmodified(statusNode.getAttribute("lastmodified"));
}
Thing thing = new Thing(id, tmd);
thing.setUserData(tud);
things.add(thing);
}
}
@@ -263,10 +318,7 @@ public class BggApi {
id,
name,
getValue(eElement, "image"),
getValue(eElement, "thumbnail"),
getValue(eElement, "comment"),
null
);
getValue(eElement, "thumbnail"));
Thing thing = new Thing(id, tmd);
things.add(thing);
}
@@ -299,7 +351,7 @@ public class BggApi {
ThingMetaData tmd = new ThingMetaData(
id,
eLink.getAttribute("value"),
"", "", "", null);
"", "");
Thing thing = new Thing(id, tmd);
things.add(thing);
}
@@ -338,7 +390,7 @@ public class BggApi {
ThingMetaData tmd = new ThingMetaData(
id,
eElement.getAttribute("objectname"),
"", "", "", null);
"", "");
Thing thing = new Thing(id, tmd);
things.add(thing);
}
@@ -362,6 +414,13 @@ public class BggApi {
}
private Boolean attributeToBoolean(Element statusNode, String attribute) {
if(statusNode.hasAttribute(attribute)) {
return statusNode.getAttribute(attribute).equals("0") ? false : true;
}
return null;
}
private void checkForErrors(Document doc) throws IllegalArgumentException {
NodeList nList = doc.getElementsByTagName("error");
if(nList.getLength() > 0) {


+ 8
- 0
xyz.veronie.bgg.ui/src/xyz/veronie/bgg/result/Recommendation.java Näytä tiedosto

@@ -0,0 +1,8 @@
package xyz.veronie.bgg.result;
public enum Recommendation {
N, // not supported
P, // not recommended
R, // recommended
B // best
}

+ 159
- 4
xyz.veronie.bgg.ui/src/xyz/veronie/bgg/result/Thing.java Näytä tiedosto

@@ -20,10 +20,12 @@ public class Thing {

private int id;
private ThingMetaData metaData;
private ThingUserData userData;
private ThingDetails details;
// cache
private Image thumbImage;
private Path imagePath;
public static final String IdHeader = "ID";
public static final String ThumbHeader = "Thumbnail";
@@ -49,9 +51,19 @@ public class Thing {
public void setMetaData(ThingMetaData metaData) {
this.metaData = metaData;
}
public void setUserData(ThingUserData userData) {
this.userData = userData;
}
public ThingUserData getUserData() {
return userData;
}
public ThingDetails getDetails() {
return details;
}
public void setDetails(ThingDetails details) {
this.details = details;
}
@@ -63,14 +75,21 @@ public class Thing {
return thumbImage;
}
public String getImagePath() {
if(imagePath != null)
return imagePath.toString();
else
return "";
}
private void getThumbImage(int thingId) {
Path tmpDir = Resources.INSTANCE.getTmpDir();
if(tmpDir != null) {
Path imageFile = Paths.get(Resources.INSTANCE.getThumbsDir().toString()
imagePath = Paths.get(Resources.INSTANCE.getThumbsDir().toString()
+ File.separator + String.valueOf(thingId) + ".png");
if(Files.exists(imageFile, LinkOption.NOFOLLOW_LINKS)) {
String filename = imageFile.toString().replace("\\","/");
if(Files.exists(imagePath, LinkOption.NOFOLLOW_LINKS)) {
String filename = imagePath.toString().replace("\\","/");
thumbImage = Resources.INSTANCE.getResourceManager().createImage(
ImageDescriptor.createFromFile(null, filename));
} else {
@@ -81,7 +100,7 @@ public class Thing {

ImageLoader saver = new ImageLoader();
saver.data = new ImageData[] { thumbImage.getImageData() };
saver.save(imageFile.toString(), SWT.IMAGE_PNG);
saver.save(imagePath.toString(), SWT.IMAGE_PNG);
} catch (MalformedURLException e) {
System.out.println("INFO: Malformed URL for ThingId " + thingId);
}
@@ -130,4 +149,140 @@ public class Thing {
}
}
/// convert the thing into a comma-separated line for a result.txt file
/**
* The format is (without line breaks):
* id,name,designer,publisher,artist,yearpublished,minplayers,maxplayers,playingtime,minplaytime,maxplaytime,
* age,usersrated,average,bayesaverage,rank,rank_wg,numcomments,numweights,averageweight,stddev,median,
* owned,trading,wanting,wishing,userrating,image,category,mechanic,comment,
* 1player,2player,3player,4player,5player,6player,7player,8player,9player,10player,
* 11player,12player,13player,14player,15player,16player,17player,18player,19player,20player,
* description,exp,basegame,reimplement,reimplement_name,reimplemented,reimplemented_name,
* contains,contains_name,iscontained,iscontained_name,integration,integration_name,
* numplays,price,userweight,wishpriority,expansions,domain,family,age_poll
*
* @return
*/
public String toResultTxtLine() {
StringBuilder str = new StringBuilder();
final String emptyItem = "\"\",";
// id,name,designer,publisher,artist,yearpublished,minplayers,maxplayers,playingtime,minplaytime,maxplaytime,
// age,usersrated,average,bayesaverage,rank,rank_wg,numcomments,numweights,averageweight,stddev,median,
str.append(Integer.toString(id)).append(",");
str.append(metaData.getName()).append(",");
if(details != null) {
str.append(details.designer).append(",");
str.append(details.publisher).append(",");
str.append(details.artist).append(",");
str.append(details.yearpublished).append(",");
str.append(details.minplayers).append(",");
str.append(details.maxplayers).append(",");
str.append(details.playingtime).append(",");
str.append(details.minplaytime).append(",");
str.append(details.maxplaytime).append(",");
str.append(details.age).append(",");
str.append(details.usersrated).append(",");
str.append(details.average).append(",");
str.append(floatToResult(details.bayesaverage)).append(",");
str.append(details.rank).append(",");
str.append(details.rank_wg).append(",");
str.append(details.numcomments).append(",");
str.append(details.numweights).append(",");
str.append(floatToResult(details.averageweight)).append(",");
str.append(floatToResult(details.stddev)).append(",");
str.append(floatToResult(details.median)).append(",");
} else {
for(int i = 0; i < 20; ++i) {
str.append(emptyItem);
}
}
// owned,trading,wanting,wishing,userrating,
if(userData != null) {
str.append(userData.getOwn()?"1":"0").append(",");
str.append(userData.getFortrade()?"1":"0").append(",");
str.append(userData.getWant()?"1":"0").append(",");
str.append(userData.getWishlist()?"1":"0").append(",");
str.append(floatToResult(userData.getRating())).append(",");
}
// image,category,mechanic,comment,
str.append(getImagePath()).append(",");
if(details != null) {
str.append(details.category).append(",");
str.append(details.mechanic).append(",");
} else str.append(emptyItem).append(emptyItem);
if(userData != null) {
str.append(userData.getComment()).append(",");
} else str.append(emptyItem);
// 1player,2player,3player,4player,5player,6player,7player,8player,9player,10player,
// 11player,12player,13player,14player,15player,16player,17player,18player,19player,20player,
if(details != null) {
for(Recommendation r : details.players) {
str.append(r.name()).append(",");
}
} else {
for(int i = 0; i < 20; ++i) {
str.append("N,");
}
}
// description,exp,basegame,reimplement,reimplement_name,reimplemented,reimplemented_name,
// contains,contains_name,iscontained,iscontained_name,integration,integration_name,
if(details != null) {
str.append(details.description).append(",");
str.append(details.expansion).append(",");
str.append(details.basegameId).append(",");
str.append(details.reimplementId).append(",");
str.append(details.reimplement_name).append(",");
str.append(details.reimplementedById).append(",");
str.append(details.reimplementedByName).append(",");
str.append(details.containsId).append(",");
str.append(details.containsName).append(",");
str.append(details.iscontained).append(",");
str.append(details.iscontained_name).append(",");
str.append(details.integration).append(",");
str.append(details.integration_name).append(",");
} else {
for(int i = 0; i < 13; ++i) {
str.append(emptyItem);
}
}
// numplays,price,userweight,wishpriority,expansions,domain,family,age_poll
if(userData != null) {
str.append(userData.getNumPlays()).append(",");
} else str.append(emptyItem);
if(details != null) {
str.append(details.price).append(",");
} else str.append(emptyItem);
// TODO: find out how to get userweight...
str.append(emptyItem);
if(userData != null) {
str.append(userData.getWishlistpriority()).append(",");
} else str.append(emptyItem);
if(details != null) {
str.append(details.expansions).append(",");
str.append(details.domain).append(",");
str.append(details.family).append(",");
str.append(details.age_poll).append(",");
} else {
str.append(emptyItem);
str.append(emptyItem);
str.append(emptyItem);
str.append(emptyItem);
}
return str.toString();
}


private String floatToResult(Float rating) {
if(rating == null) {
return "";
} else {
return Float.toString(rating.floatValue());
}
}
}

+ 2
- 10
xyz.veronie.bgg.ui/src/xyz/veronie/bgg/result/ThingDetails.java Näytä tiedosto

@@ -2,7 +2,6 @@ package xyz.veronie.bgg.result;
public class ThingDetails {
Integer id;
String name;
String designer;
String publisher;
String artist;
@@ -23,18 +22,13 @@ public class ThingDetails {
Float averageweight;
Float stddev;
Float median;
Boolean owned;
Boolean trading;
Boolean wanting;
Boolean wishing;
Float userrating;
String image;
Integer category;
Integer mechanic;
String comment;
Integer[] players; // 1 to 20
Recommendation[] players; // 1 to 20
String description;
// exp,
Integer expansion;
Integer basegameId;
Integer reimplementId;
String reimplement_name;
@@ -48,8 +42,6 @@ public class ThingDetails {
String integration_name;
Integer numplays;
Float price;
Float userweight;
Integer wishpriority;
Integer expansions;
String domain;
String family;


+ 0
- 74
xyz.veronie.bgg.ui/src/xyz/veronie/bgg/result/ThingDetailsComposite.java Näytä tiedosto

@@ -1,74 +0,0 @@
package xyz.veronie.bgg.result;
import java.awt.Label;
import javax.annotation.PostConstruct;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Composite;
public class ThingDetailsComposite extends Composite {
ThingDetails thingDetails;
private Label nameField;
private Label designerField;
private Label publisherField;
private Label yearField;
public ThingDetailsComposite(Composite parent, int style) {
super(parent, style);
}
@PostConstruct
public void create() {
setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, false));
GridLayout layout = new GridLayout(2, false);
setLayout(layout);
Label nameLbl = new Label("Name");
applyLayout(nameLbl);
nameField = new Label("");
Label designerLbl = new Label("Designer");
applyLayout(designerLbl);
designerField = new Label("");
Label publisherLbl = new Label("Publisher");
applyLayout(publisherLbl);
publisherField = new Label("");
Label yearLbl = new Label("Publisher");
applyLayout(yearLbl);
yearField = new Label("");
this.getParent().layout();
}
private void applyLayout(Label label) {
label.setAlignment(SWT.RIGHT);
}
public void selectedThingChanged(Thing thing) {
System.out.println("TOPIC_THING_SELECTION: " + thing);
thingDetails = thing.getDetails();
if(thingDetails != null) {
nameField.setText(thingDetails.name);
designerField.setText(thingDetails.designer);
publisherField.setText(thingDetails.publisher);
yearField.setText(Integer.toString(thingDetails.yearpublished));
} else {
nameField.setText("");
designerField.setText("");
publisherField.setText("");
yearField.setText("");
}
this.getParent().layout();
}
}

+ 1
- 28
xyz.veronie.bgg.ui/src/xyz/veronie/bgg/result/ThingMetaData.java Näytä tiedosto

@@ -2,7 +2,6 @@ package xyz.veronie.bgg.result;
import java.beans.PropertyChangeListener;
import java.beans.PropertyChangeSupport;
//import com.google.gson.Gson;
public class ThingMetaData implements java.io.Serializable {
private static final long serialVersionUID = -5268898737006538509L;
@@ -11,21 +10,15 @@ public class ThingMetaData implements java.io.Serializable {
private String name;
private String imgURL;
private String thumbURL;
private String comment;
private Integer numPlays;
private PropertyChangeSupport propertyChangeSupport = new PropertyChangeSupport(this);
public ThingMetaData(int id, String name,
String imgURL, String thumURL,
String comment, Integer numPlays) {
String imgURL, String thumURL) {
this.setId(id);
this.setName(name);
this.setImgURL(imgURL);
this.setThumbURL(thumURL);
this.setComment(comment);
this.setNumPlays(numPlays);
}
@@ -78,29 +71,9 @@ public class ThingMetaData implements java.io.Serializable {
this.thumbURL = thumbURL);
}
public Integer getNumPlays() {
return numPlays;
}
public void setNumPlays(Integer numPlays) {
this.numPlays = numPlays;
}
public String getComment() {
return comment;
}
public void setComment(String comment) {
propertyChangeSupport.firePropertyChange("comment", this.comment,
this.comment = comment);
}
@Override
public String toString() {
return String.valueOf(id);
// Gson gson = new Gson();
// return gson.toJson(this);
}


+ 134
- 0
xyz.veronie.bgg.ui/src/xyz/veronie/bgg/result/ThingUserData.java Näytä tiedosto

@@ -0,0 +1,134 @@
package xyz.veronie.bgg.result;
public class ThingUserData {
private Integer numplays;
private String comment;
private Float rating;
private Boolean own;
private Boolean prevowned;
private Boolean fortrade;
private Boolean want;
private Boolean wanttoplay;
private Boolean wanttobuy;
private Boolean wishlist;
private Integer wishlistpriority;
private Boolean preordered;
private String lastmodified;
//private Float weight;
public Integer getNumPlays() {
return numplays;
}
public void setNumPlays(Integer numPlays) {
this.numplays = numPlays;
}
public String getComment() {
return comment;
}
public void setComment(String comment) {
this.comment = comment;
}
public Float getRating() {
return rating;
}
public void setRating(Float rating) {
this.rating = rating;
}
public Boolean getOwn() {
return own;
}
public void setOwn(Boolean own) {
this.own = own;
}
public Boolean getPrevowned() {
return prevowned;
}
public void setPrevowned(Boolean prevowned) {
this.prevowned = prevowned;
}
public Boolean getFortrade() {
return fortrade;
}
public void setFortrade(Boolean fortrade) {
this.fortrade = fortrade;
}
public Boolean getWant() {
return want;
}
public void setWant(Boolean want) {
this.want = want;
}
public Boolean getWanttoplay() {
return wanttoplay;
}
public void setWanttoplay(Boolean wanttoplay) {
this.wanttoplay = wanttoplay;
}
public Boolean getWanttobuy() {
return wanttobuy;
}
public void setWanttobuy(Boolean wanttobuy) {
this.wanttobuy = wanttobuy;
}
public Boolean getWishlist() {
return wishlist;
}
public void setWishlist(Boolean wishlist) {
this.wishlist = wishlist;
}
public Integer getWishlistpriority() {
return wishlistpriority;
}
public void setWishlistpriority(Integer wishlistpriority) {
this.wishlistpriority = wishlistpriority;
}
public Boolean getPreordered() {
return preordered;
}
public void setPreordered(Boolean preordered) {
this.preordered = preordered;
}
public String getLastmodified() {
return lastmodified;
}
public void setLastmodified(String lastmodified) {
this.lastmodified = lastmodified;
}
// public Float getWeight() {
// return weight;
// }
//
// public void setWeight(Float weight) {
// this.weight = weight;
// }
}

+ 34
- 0
xyz.veronie.bgg.ui/src/xyz/veronie/bgg/ui/handlers/ExportResultHandler.java Näytä tiedosto

@@ -0,0 +1,34 @@
package xyz.veronie.bgg.ui.handlers;
import org.eclipse.e4.core.di.annotations.Execute;
import xyz.veronie.bgg.result.Thing;
import xyz.veronie.bgg.result.ThingProvider;
import java.util.List;
import javax.inject.Inject;
import org.eclipse.e4.core.di.annotations.CanExecute;
public class ExportResultHandler {
@Inject
ThingProvider thingProvider;
@Execute
public void execute() {
List<Thing> things = thingProvider.getThings();
for (Thing thing : things) {
System.out.println(thing.toResultTxtLine());
}
}
@CanExecute
public boolean canExecute() {
return thingProvider != null;
}
}

+ 11
- 14
xyz.veronie.bgg.ui/src/xyz/veronie/bgg/ui/parts/BatMain.java Näytä tiedosto

@@ -148,6 +148,16 @@ public class BatMain {
btnUndo.setEnabled(false);
btnExport = new Button(buttonRow, SWT.NONE);
btnExport.addMouseListener(new MouseAdapter() {
@Override
public void mouseUp(MouseEvent e) {
ParameterizedCommand cmd =
commandService.createCommand("xyz.veronie.bgg.ui.command.export", null);
if (handlerService.canExecute(cmd)){
handlerService.executeHandler(cmd);
}
}
});
btnExport.setImage(ResourceManager.getPluginImage("xyz.veronie.bgg.ui", "icons/export_nandeck_60x60.png"));
btnExport.setToolTipText("Export for nanDeck");
btnExport.setEnabled(false);
@@ -222,20 +232,7 @@ public class BatMain {
TableViewerColumn colThumbnail = createTableViewerColumn(Thing.ThumbHeader, 120, 0);
// colThumbnail.setLabelProvider(new ColumnLabelProvider() {
// @Override
// public Image getImage(Object element) {
// Thing t = (Thing) element;
// Image img = t.getThumbnail();
// return img;
// }
//
// @Override
// public String getText(Object element) {
// return "";
// }
//
// });
colThumbnail.setLabelProvider(new OwnerDrawLabelProvider() {
@Override
protected void measure(Event event, Object element) {


+ 0
- 6
xyz.veronie.bgg.ui/src/xyz/veronie/bgg/ui/parts/ThingListPart.java Näytä tiedosto

@@ -11,12 +11,9 @@ import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Composite;
import xyz.veronie.bgg.result.Thing;
import xyz.veronie.bgg.result.ThingDetailsComposite;
import xyz.veronie.bgg.types.EventConstants;
public class ThingListPart {
private ThingDetailsComposite thingDetailsComposite;
@PostConstruct
public void createControls(Composite parent) {
Composite main = new Composite(parent, SWT.FILL);
@@ -24,14 +21,11 @@ public class ThingListPart {
GridLayout layout = new GridLayout(2, false);
main.setLayout(layout);
thingDetailsComposite = new ThingDetailsComposite(main, SWT.BORDER);
}
@Inject
@Optional
private void selectedThingChanged(@UIEventTopic(EventConstants.TOPIC_THING_SELECTION) Thing thing) {
thingDetailsComposite.selectedThingChanged(thing);
}


Loading…
Peruuta
Tallenna