소스 검색

Improved layout, added Download controls, tried to make this a maven

project to use gson (no success)
pull/2/head
veronie 4 년 전
부모
커밋
7941799804
22개의 변경된 파일418개의 추가작업 그리고 161개의 파일을 삭제
  1. +11
    -2
      xyz.veronie.bgg.ui/.classpath
  2. +1
    -0
      xyz.veronie.bgg.ui/.gitignore
  3. +6
    -0
      xyz.veronie.bgg.ui/.project
  4. +19
    -8
      xyz.veronie.bgg.ui/Application.e4xmi
  5. +3
    -3
      xyz.veronie.bgg.ui/META-INF/MANIFEST.MF
  6. +1
    -0
      xyz.veronie.bgg.ui/build.properties
  7. BIN
      xyz.veronie.bgg.ui/icons/download-button.png
  8. BIN
      xyz.veronie.bgg.ui/icons/save-button.png
  9. BIN
      xyz.veronie.bgg.ui/icons/save-button_20x20.png
  10. +6
    -6
      xyz.veronie.bgg.ui/pom.xml
  11. +0
    -5
      xyz.veronie.bgg.ui/src/xyz/veronie/bgg/result/BggFamily.java
  12. +16
    -18
      xyz.veronie.bgg.ui/src/xyz/veronie/bgg/result/ThingProvider.java
  13. +39
    -31
      xyz.veronie.bgg.ui/src/xyz/veronie/bgg/ui/filters/BggUserSourceFilter.java
  14. +4
    -4
      xyz.veronie.bgg.ui/src/xyz/veronie/bgg/ui/filters/FamilySourceFilter.java
  15. +4
    -4
      xyz.veronie.bgg.ui/src/xyz/veronie/bgg/ui/filters/GeeklistSourceFilter.java
  16. +23
    -0
      xyz.veronie.bgg.ui/src/xyz/veronie/bgg/ui/handlers/HandleSaveGamelist.java
  17. +6
    -8
      xyz.veronie.bgg.ui/src/xyz/veronie/bgg/ui/parts/BggResultPart.java
  18. +225
    -0
      xyz.veronie.bgg.ui/src/xyz/veronie/bgg/ui/parts/DownloadThingDetailsPart.java
  19. +0
    -22
      xyz.veronie.bgg.ui/src/xyz/veronie/bgg/ui/parts/LoadThingDetailsPart.java
  20. +38
    -49
      xyz.veronie.bgg.ui/src/xyz/veronie/bgg/ui/parts/PreparePart.java
  21. +2
    -1
      xyz.veronie.bgg.ui/src/xyz/veronie/bgg/ui/parts/StatusBar.java
  22. +14
    -0
      xyz.veronie.bgg.ui/src/xyz/veronie/bgg/ui/result/DownloadProgressMonitor.java

+ 11
- 2
xyz.veronie.bgg.ui/.classpath 파일 보기

@@ -1,7 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
<classpathentry kind="src" path="src"/>
<classpathentry kind="output" path="bin"/>
<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="output" path="target/classes"/>
</classpath>

+ 1
- 0
xyz.veronie.bgg.ui/.gitignore 파일 보기

@@ -0,0 +1 @@
/target/

+ 6
- 0
xyz.veronie.bgg.ui/.project 파일 보기

@@ -20,8 +20,14 @@
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.m2e.core.maven2Builder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.m2e.core.maven2Nature</nature>
<nature>org.eclipse.pde.PluginNature</nature>
<nature>org.eclipse.jdt.core.javanature</nature>
</natures>


+ 19
- 8
xyz.veronie.bgg.ui/Application.e4xmi 파일 보기

@@ -1,17 +1,25 @@
<?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: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="1600" height="900">
<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="_4NsHQEqTEeqT5sxfmvJ5Tg" elementId="xyz.veronie.bgg.ui.partsashcontainer.bggload">
<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 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="Download games"/>
<children xsi:type="basic:PartSashContainer" xmi:id="_4NsHQEqTEeqT5sxfmvJ5Tg" elementId="xyz.veronie.bgg.ui.partsashcontainer.left">
<children xsi:type="basic:PartStack" xmi:id="_7KNiwEqTEeqT5sxfmvJ5Tg" elementId="xyz.veronie.bgg.ui.partstack.leftupper" containerData="800">
<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.PreparePart" label="Prepare"/>
</children>
<children xsi:type="basic:PartStack" xmi:id="_0OB_gJ2wEeqjssfAjxHZ-w" elementId="xyz.veronie.bgg.ui.partstack.leftlower" containerData="800">
<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">
<toolbar xmi:id="_ZZOF8J3AEeqjssfAjxHZ-w" elementId="xyz.veronie.bgg.ui.toolbar.0">
<children xsi:type="menu:DirectToolItem" xmi:id="_c42V4J29EeqjssfAjxHZ-w" elementId="xyz.veronie.bgg.ui.directtoolitem.saveResult" label="save result" iconURI="platform:/plugin/xyz.veronie.bgg.ui/icons/save-button.png" contributionURI="bundleclass://xyz.veronie.bgg.ui/xyz.veronie.bgg.ui.handlers.HandleSaveGamelist"/>
</toolbar>
</children>
</children>
</children>
<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.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:PartSashContainer" xmi:id="_AF1vQEqUEeqT5sxfmvJ5Tg" elementId="xyz.veronie.bgg.ui.partsashcontainer.right">
<children xsi:type="basic:PartStack" xmi:id="_0MbRQEqTEeqT5sxfmvJ5Tg" elementId="de.wt.bgg.ui.partstack.rightupper" containerData="800">
<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.DownloadThingDetailsPart" label="Download games"/>
</children>
<children xsi:type="basic:PartStack" xmi:id="_2M6HAJ2wEeqjssfAjxHZ-w" elementId="xyz.veronie.bgg.ui.rightlower" containerData="800">
<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>
@@ -21,6 +29,9 @@
<trimBars xmi:id="_I6MLEFv-EeqNgfoocONcgg" elementId="xyz.veronie.bgg.ui.trimbar.bottom" side="Bottom">
<children xsi:type="menu:ToolControl" xmi:id="_JQ6B8Fv-EeqNgfoocONcgg" elementId="xyz.veronie.bgg.ui.toolcontrol.status" contributionURI="bundleclass://xyz.veronie.bgg.ui/xyz.veronie.bgg.ui.parts.StatusBar"/>
</trimBars>
<trimBars xmi:id="__2T2oIubEeqEpr8WQZMuMQ" elementId="xyz.veronie.bgg.ui.trimbar.0">
<children xsi:type="menu:ToolBar" xmi:id="_AX9yMIucEeqEpr8WQZMuMQ" elementId="xyz.veronie.bgg.ui.toolbar.testbar"/>
</trimBars>
</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_ZskqSEeqT5sxfmvJ5Tg" elementId="org.eclipse.e4.ui.contexts.service" contributionURI="bundleclass://org.eclipse.e4.ui.services/org.eclipse.e4.ui.services.ContextServiceAddon"/>


+ 3
- 3
xyz.veronie.bgg.ui/META-INF/MANIFEST.MF 파일 보기

@@ -13,10 +13,10 @@ Require-Bundle: org.eclipse.core.runtime,
org.eclipse.jface,
org.eclipse.e4.core.services,
org.eclipse.osgi.services,
javax.inject
javax.inject,
org.eclipse.e4.ui.model.workbench
Automatic-Module-Name: de.wt.secondtry
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
Import-Package: com.google.gson;version="2.8.2",
javax.inject;version="1.0.0",
Import-Package: javax.inject;version="1.0.0",
org.eclipse.e4.ui.model.application.descriptor.basic,
org.eclipse.e4.ui.model.application.ui.basic

+ 1
- 0
xyz.veronie.bgg.ui/build.properties 파일 보기

@@ -1,5 +1,6 @@
output.. = bin/
bin.includes = META-INF/,\
.,\
plugin.xml,\
Application.e4xmi
source.. = src/

BIN
xyz.veronie.bgg.ui/icons/download-button.png 파일 보기

Before After
Width: 512  |  Height: 512  |  Size: 1.5KB

BIN
xyz.veronie.bgg.ui/icons/save-button.png 파일 보기

Before After
Width: 16  |  Height: 16  |  Size: 1.9KB

BIN
xyz.veronie.bgg.ui/icons/save-button_20x20.png 파일 보기

Before After
Width: 20  |  Height: 20  |  Size: 3.5KB

+ 6
- 6
xyz.veronie.bgg.ui/pom.xml 파일 보기

@@ -8,7 +8,7 @@
<artifactId>xyz.veronie.bgg.ui</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>xyz.veronie.bgg.ui2</name>
<name>xyz.veronie.bgg.ui</name>
<!-- FIXME change it to the project's website -->
<url>http://www.example.com</url>
@@ -19,17 +19,17 @@
</properties>
<dependencies>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.8.6</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.8.6</version>
</dependency>
</dependencies>
<build>


+ 0
- 5
xyz.veronie.bgg.ui/src/xyz/veronie/bgg/result/BggFamily.java 파일 보기

@@ -1,5 +0,0 @@
package xyz.veronie.bgg.result;
public class BggFamily {
}

+ 16
- 18
xyz.veronie.bgg.ui/src/xyz/veronie/bgg/result/ThingProvider.java 파일 보기

@@ -6,17 +6,12 @@ import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.function.Predicate;
import xyz.veronie.bgg.result.ThingMetaData;
import javax.inject.Inject;
import org.eclipse.e4.core.di.annotations.Optional;
import org.eclipse.e4.ui.di.UIEventTopic;
import org.eclipse.core.runtime.Path;
import com.google.gson.Gson;
import xyz.veronie.bgg.types.EventConstants;
import xyz.veronie.bgg.types.SourceFilter;
public enum ThingProvider {
INSTANCE;
@@ -48,8 +43,8 @@ public enum ThingProvider {
}
// helper functino for subtractThingMetas
private static Predicate<ThingMetaData> thingEqual(ThingMetaData other)
// helper function for subtractThingMetas
private static Predicate<ThingMetaData> thingEqual(final ThingMetaData other)
{
return p -> p.getId() == other.getId();
}
@@ -80,9 +75,12 @@ public enum ThingProvider {
String resultList = gson.toJson(this.thingMetas);
try {
Path filesPath = new Path("result_" + Long.toString(System.currentTimeMillis()));
System.out.println("File output path: " + filesPath);
BufferedWriter writer = new BufferedWriter(
new FileWriter("result_" + Long.toString(System.currentTimeMillis())));
new FileWriter(filesPath.toString()));
writer.write(resultList);
writer.close();
} catch (IOException e) {
e.printStackTrace();
@@ -96,13 +94,13 @@ public enum ThingProvider {
return thingMetas;
}
@Inject
@Optional
private void subscribeTopicSourceChanged
(@UIEventTopic(EventConstants.TOPIC_TAG_RESULT)
String str) {
System.out.println("Tag result now.");
this.tagResult();
}
// @Inject
// @Optional
// private void subscribeTopicTagResult
// (@UIEventTopic(EventConstants.TOPIC_TAG_RESULT)
// String empty) {
// System.out.println("TOPIC_TAG_RESULT: Tag result now.");
// this.tagResult();
// }
}

+ 39
- 31
xyz.veronie.bgg.ui/src/xyz/veronie/bgg/ui/filters/BggUserSourceFilter.java 파일 보기

@@ -21,10 +21,10 @@ import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Combo;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Layout;
import xyz.veronie.bgg.result.ResultConfigManager;
import xyz.veronie.bgg.types.EventConstants;
@@ -46,13 +46,16 @@ public class BggUserSourceFilter {
@Inject private IEventBroker eventBroker;
@Inject private ResultConfigManager configManager;
private Combo cbUserName;
public void create(Composite parent, int style) {
GridLayout filterLayout = new GridLayout(5, false);
parent.setLayout(filterLayout);
Composite mainCompo = new Composite(parent, SWT.FILL);
mainCompo.setLayout(new GridLayout(5, false));
mainCompo.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false));
Label lblUser = new Label(parent, SWT.LEFT);
Label lblUser = new Label(mainCompo, SWT.LEFT);
lblUser.setText("User name: ");
lblUser.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, false));
@@ -69,7 +72,7 @@ public class BggUserSourceFilter {
// e1.printStackTrace();
// }
Combo cbUserName = new Combo(parent, SWT.DROP_DOWN);
cbUserName = new Combo(mainCompo, SWT.DROP_DOWN);
cbUserName.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, false));
cbUserName.setText(configManager.getResultConfig().user);
cbUserName.addSelectionListener(new SelectionAdapter() {
@@ -90,6 +93,8 @@ public class BggUserSourceFilter {
}
});
CommonControls.makeEmptySpace(mainCompo, 1);
// Button btEditUsers = new Button(parent, SWT.PUSH);
// btEditUsers.setText("edit users");
// btEditUsers.setEnabled(false);
@@ -97,14 +102,12 @@ public class BggUserSourceFilter {
// btEditUsers.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, false));
// TODO: implement edit users
CommonControls.makeEmptySpace(parent, 1);
// choose the thing sub-type
Label lblSubtype = new Label(parent, SWT.LEFT);
Label lblSubtype = new Label(mainCompo, SWT.LEFT);
lblSubtype.setText("Subtypes: ");
lblSubtype.setLayoutData(new GridData(SWT.RIGHT, SWT.FILL, false, false));
ComboViewer cbSubtypes = new ComboViewer(parent, SWT.READ_ONLY);
ComboViewer cbSubtypes = new ComboViewer(mainCompo, SWT.READ_ONLY);
cbSubtypes.getCombo().setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, false));
cbSubtypes.setContentProvider(ArrayContentProvider.getInstance());
List<Subtype> subtypes = new ArrayList<Subtype>();
@@ -123,37 +126,42 @@ public class BggUserSourceFilter {
Label infoLabel = new Label(parent, SWT.LEFT);
Composite flagsComposite = new Composite(mainCompo, SWT.FILL);
GridLayout layout = new GridLayout(4,false);
GridData gridData = new GridData(SWT.FILL, SWT.FILL, true, false);
gridData.horizontalSpan = 5;
flagsComposite.setLayoutData(gridData);
layout.horizontalSpacing = 15;
flagsComposite.setLayout(layout);
Label infoLabel = new Label(flagsComposite, SWT.LEFT);
infoLabel.setText("Select which flags are used as filter. Filters follow 'AND' rule.");
GridData gdInfo = new GridData(SWT.FILL, SWT.FILL, true, false);
gdInfo.horizontalSpan = 5;
gdInfo.horizontalSpan = 4;
infoLabel.setLayoutData(gdInfo);
makeFilter(parent, UserFlag.OWN);
makeFilter(parent, UserFlag.WTP);
CommonControls.makeEmptySpace(parent, 1);
makeFilter(flagsComposite, UserFlag.OWN);
makeFilter(flagsComposite, UserFlag.WTP);
makeFilter(parent, UserFlag.PREVIOUSLY_OWNED);
makeFilter(parent, UserFlag.WTB);
CommonControls.makeEmptySpace(parent, 1);
makeFilter(flagsComposite, UserFlag.PREVIOUSLY_OWNED);
makeFilter(flagsComposite, UserFlag.WTB);
makeFilter(parent, UserFlag.TRADE);
makeFilter(parent, UserFlag.WISHLIST);
CommonControls.makeEmptySpace(parent, 1);
makeFilter(flagsComposite, UserFlag.TRADE);
makeFilter(flagsComposite, UserFlag.WISHLIST);
makeFilter(parent, UserFlag.WANT);
makeFilter(parent, UserFlag.PREORDERED);
CommonControls.makeEmptySpace(parent, 1);
makeFilter(flagsComposite, UserFlag.WANT);
makeFilter(flagsComposite, UserFlag.PREORDERED);
makeFilter(parent, UserFlag.RATED);
makeFilter(parent, UserFlag.COMMENT);
CommonControls.makeEmptySpace(parent, 1);
makeFilter(flagsComposite, UserFlag.RATED);
makeFilter(flagsComposite, UserFlag.COMMENT);
makeFilter(parent, UserFlag.PLAYED);
makeFilter(flagsComposite, UserFlag.PLAYED);
parent.pack();
parent.getParent().pack();
parent.layout();
// flagsComposite.pack();
// flagsComposite.getParent().pack();
// flagsComposite.layout();
mainCompo.pack();
mainCompo.layout(true, true);
}
@@ -161,7 +169,7 @@ public class BggUserSourceFilter {
// Filters are tri-state: include iff has flag, include iff it does not have the flag,
// don't care if it has that flag.
// TODO: create a three-way toggle button instead.
private void makeFilter(Composite parent, UserFlag key) {
private void makeFilter(Composite parent, final UserFlag key) {
ComboViewer filterCombo = new ComboViewer(parent, SWT.READ_ONLY);
filterCombo.setContentProvider(ArrayContentProvider.getInstance());


+ 4
- 4
xyz.veronie.bgg.ui/src/xyz/veronie/bgg/ui/filters/FamilySourceFilter.java 파일 보기

@@ -9,7 +9,6 @@ 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.ui.di.UIEventTopic;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.jface.viewers.ArrayContentProvider;
import org.eclipse.jface.viewers.ComboViewer;
import org.eclipse.jface.viewers.ISelectionChangedListener;
@@ -39,6 +38,7 @@ public class FamilySourceFilter {
@Inject private IEventBroker eventBroker;
@Inject private ResultConfigManager configManager;
private StyledText confLabel;
private Combo cbFamilyId;
public void create(Composite parent, int style) {
GridLayout filterLayout = new GridLayout(2, false);
@@ -48,7 +48,7 @@ public class FamilySourceFilter {
lblFamily.setText("Family ID: ");
lblFamily.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, false));
Combo cbFamilyId = new Combo(parent, SWT.DROP_DOWN);
cbFamilyId = new Combo(parent, SWT.DROP_DOWN);
cbFamilyId.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, false));
Integer fid = configManager.getResultConfig().familyId;
@@ -63,7 +63,7 @@ public class FamilySourceFilter {
System.out.println("set family id to '" + configManager.getResultConfig().familyId + "'");
}
catch (NumberFormatException ex) {
MessageDialog.openError(parent.getShell(), "Input error", "FamilyId must be a whole number.");
eventBroker.send(EventConstants.TOPIC_STATUS, "[ERROR] GeeklistId must be a whole number.");
}
System.out.println("set family id to '" + configManager.getResultConfig().familyId + "'");
}
@@ -77,7 +77,7 @@ public class FamilySourceFilter {
System.out.println("set family id to '" + configManager.getResultConfig().geeklistId + "'");
}
catch (NumberFormatException ex) {
MessageDialog.openError(parent.getShell(), "Input error", "FamilyId must be a whole number.");
eventBroker.send(EventConstants.TOPIC_STATUS, "[ERROR] GeeklistId must be a whole number.");
}
System.out.println("set family id to '" + configManager.getResultConfig().familyId + "'");
}


+ 4
- 4
xyz.veronie.bgg.ui/src/xyz/veronie/bgg/ui/filters/GeeklistSourceFilter.java 파일 보기

@@ -6,7 +6,6 @@ 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.ui.di.UIEventTopic;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.swt.SWT;
import org.eclipse.swt.custom.StyledText;
import org.eclipse.swt.events.FocusEvent;
@@ -30,6 +29,7 @@ public class GeeklistSourceFilter {
@Inject private ResultConfigManager configManager;
private StyledText confLabel;
private Combo cbGeeklistId;
public void create(Composite parent, int style) {
GridLayout filterLayout = new GridLayout(2, false);
@@ -39,7 +39,7 @@ public class GeeklistSourceFilter {
lblGeeklist.setText("Geeklist ID: ");
lblGeeklist.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, false));
Combo cbGeeklistId = new Combo(parent, SWT.DROP_DOWN);
cbGeeklistId = new Combo(parent, SWT.DROP_DOWN);
Integer gid = configManager.getResultConfig().geeklistId;
if(gid != null) {
cbGeeklistId.setText(Integer.toString(gid));
@@ -52,7 +52,7 @@ public class GeeklistSourceFilter {
System.out.println("set geeklist id to '" + configManager.getResultConfig().geeklistId + "'");
}
catch (NumberFormatException ex) {
MessageDialog.openError(parent.getShell(), "Input error", "GeeklistId must be a whole number.");
eventBroker.send(EventConstants.TOPIC_STATUS, "[ERROR] GeeklistId must be a whole number.");
}
}
});
@@ -65,7 +65,7 @@ public class GeeklistSourceFilter {
System.out.println("set geeklist id to '" + configManager.getResultConfig().geeklistId + "'");
}
catch (NumberFormatException ex) {
MessageDialog.openError(parent.getShell(), "Input error", "GeeklistId must be a whole number.");
eventBroker.send(EventConstants.TOPIC_STATUS, "[ERROR] GeeklistId must be a whole number.");
}
}


+ 23
- 0
xyz.veronie.bgg.ui/src/xyz/veronie/bgg/ui/handlers/HandleSaveGamelist.java 파일 보기

@@ -0,0 +1,23 @@
package xyz.veronie.bgg.ui.handlers;
import org.eclipse.e4.core.di.annotations.CanExecute;
import org.eclipse.e4.core.di.annotations.Execute;
import xyz.veronie.bgg.result.ThingProvider;
public class HandleSaveGamelist {
@Execute
public void execute() {
ThingProvider.INSTANCE.tagResult();
}
@CanExecute
public boolean canExecute() {
// TODO
return true;
}
}

+ 6
- 8
xyz.veronie.bgg.ui/src/xyz/veronie/bgg/ui/parts/BggResultPart.java 파일 보기

@@ -13,6 +13,8 @@ import org.eclipse.jface.viewers.ColumnLabelProvider;
import org.eclipse.jface.viewers.TableViewer;
import org.eclipse.jface.viewers.TableViewerColumn;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Button;
@@ -29,8 +31,6 @@ public class BggResultPart {
private TableViewer viewer;
private Label statsLabel;
@Inject private IEventBroker eventBroker;
@PostConstruct
public void createControls(Composite parent) {
Composite main = new Composite(parent, SWT.FILL);
@@ -42,14 +42,12 @@ public class BggResultPart {
createViewer(main);
statsLabel = new Label(main, SWT.FILL);
statsLabel.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, false));
statsLabel.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false));
statsLabel.setText("0 items");
Button tagResultButton = new Button(main, SWT.PUSH);
tagResultButton.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, false));
tagResultButton.addListener(SWT.SELECTED, event -> {
eventBroker.post(EventConstants.TOPIC_TAG_RESULT, "");
});
}


+ 225
- 0
xyz.veronie.bgg.ui/src/xyz/veronie/bgg/ui/parts/DownloadThingDetailsPart.java 파일 보기

@@ -0,0 +1,225 @@
package xyz.veronie.bgg.ui.parts;
import javax.annotation.PostConstruct;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.jobs.Job;
import org.eclipse.core.runtime.jobs.ProgressProvider;
import org.eclipse.jface.viewers.ComboViewer;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
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.Group;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.ProgressBar;
import xyz.veronie.bgg.ui.helpers.CommonControls;
import xyz.veronie.bgg.ui.result.DownloadProgressMonitor;
public class DownloadThingDetailsPart {
private DownloadProgressMonitor monitor;
private Button extendedInfoCheck;
private Button downloadAllPlaysCheck;
@PostConstruct
public void createControls(Composite parent) {
Composite main = new Composite(parent, SWT.FILL);
main.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, false));
GridLayout layout = new GridLayout(2, false);
main.setLayout(layout);
Composite loadGamesComposite = new Composite(main, SWT.FILL);
loadGamesComposite.setLayout(new GridLayout(1, false));
loadGamesComposite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
loadGamesComposite.setBackground(main.getDisplay().getSystemColor(SWT.COLOR_WHITE));
createLoadGamesControls(loadGamesComposite);
Composite loadOptionsComposite = new Composite(main, SWT.FILL);
loadOptionsComposite.setLayout(new GridLayout(1, false));
loadOptionsComposite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
loadOptionsComposite.setBackground(main.getDisplay().getSystemColor(SWT.COLOR_WHITE));
createLoadOptionsControls(loadOptionsComposite);
Composite runNanDeckComposite = new Composite(main, SWT.FILL);
runNanDeckComposite.setLayout(new GridLayout(1, false));
runNanDeckComposite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false));
runNanDeckComposite.setBackground(main.getDisplay().getSystemColor(SWT.COLOR_WHITE));
createRunNanDeckControls(runNanDeckComposite);
Composite nanDeckOptionsComposite = new Composite(main, SWT.FILL);
nanDeckOptionsComposite.setLayout(new GridLayout(1, false));
nanDeckOptionsComposite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false));
nanDeckOptionsComposite.setBackground(main.getDisplay().getSystemColor(SWT.COLOR_WHITE));
createNandeckOptionsControl(nanDeckOptionsComposite);
}
private void createNandeckOptionsControl(Composite compo) {
// Combo with ("Wait for user input", "Create PDF", "Print on default printer", "Save BMP images",
// "Save JPG images", "Save PNG images", Save GIF images", "Save GIFa images");
}
private void createLoadOptionsControls(Composite compo) {
Group optionsGroup = new Group(compo, SWT.SHADOW_ETCHED_IN);
GridLayout layout = new GridLayout(3, false);
layout.horizontalSpacing = 15;
optionsGroup.setLayout(layout);
optionsGroup.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false));
optionsGroup.setText("Download options");
Label gamesLbl = new Label(optionsGroup, SWT.LEFT);
gamesLbl.setText("Games");
ComboViewer gamesCombo = new ComboViewer(optionsGroup);
CommonControls.makeEmptySpace(optionsGroup, 1);
Label resolutionLbl = new Label(optionsGroup, SWT.LEFT);
resolutionLbl.setText("Resolution");
ComboViewer resolutionCombo = new ComboViewer(optionsGroup);
CommonControls.makeEmptySpace(optionsGroup, 1);
Label imagesLbl = new Label(optionsGroup, SWT.LEFT);
imagesLbl.setText("Images");
ComboViewer imagesCombo = new ComboViewer(optionsGroup);
CommonControls.makeEmptySpace(optionsGroup, 1);
Button onlyNewCheck = new Button(optionsGroup, SWT.CHECK);
onlyNewCheck.setText("Only new");
Button usePersNamesCheck = new Button(optionsGroup, SWT.CHECK);
usePersNamesCheck.setText("Use pers. names");
usePersNamesCheck.setEnabled(false);
Button only1DesignerCheck = new Button(optionsGroup, SWT.CHECK);
only1DesignerCheck.setText("Only one designer");
only1DesignerCheck.setEnabled(false);
Button withDescCheck = new Button(optionsGroup, SWT.CHECK);
withDescCheck.setText("With description");
Button usePersImagesCheck = new Button(optionsGroup, SWT.CHECK);
usePersImagesCheck.setText("Use pers. images");
usePersImagesCheck.setEnabled(false);
Button only1PublisherCheck = new Button(optionsGroup, SWT.CHECK);
only1PublisherCheck.setText("Only one publisher");
only1PublisherCheck.setEnabled(false);
Button limitDescCheck = new Button(optionsGroup, SWT.CHECK);
limitDescCheck.setText("Limit description");
Button useRecBestInfoCheck = new Button(optionsGroup, SWT.CHECK);
useRecBestInfoCheck.setText("Use rec./best info");
useRecBestInfoCheck.setEnabled(false);
Button only1ArtistCheck = new Button(optionsGroup, SWT.CHECK);
only1ArtistCheck.setText("Only one artist");
only1ArtistCheck.setEnabled(false);
Button downloadVotesCheck = new Button(optionsGroup, SWT.CHECK);
downloadVotesCheck.setText("Download votes");
downloadVotesCheck.setEnabled(false);
downloadVotesCheck.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
extendedInfoCheck.setEnabled(true);
}
});
Button brnDetailCheck = new Button(optionsGroup, SWT.CHECK);
brnDetailCheck.setText("B/R/N detail");
brnDetailCheck.setEnabled(false);
Button reloadDataCheck = new Button(optionsGroup, SWT.CHECK);
reloadDataCheck.setText("Reload data");
reloadDataCheck.setEnabled(false);
extendedInfoCheck = new Button(optionsGroup, SWT.CHECK);
extendedInfoCheck.setText(" Extended info");
extendedInfoCheck.setEnabled(false); // enabled when download votes is checked
Button downloadPlaysCheck = new Button(optionsGroup, SWT.CHECK);
downloadPlaysCheck.setText("Download plays");
downloadPlaysCheck.setEnabled(false);
downloadPlaysCheck.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
downloadAllPlaysCheck.setEnabled(true);
}
});
Button reloadImagesCheck = new Button(optionsGroup, SWT.CHECK);
reloadImagesCheck.setText("Reload images");
reloadImagesCheck.setEnabled(false);
Button downloadLangCheck = new Button(optionsGroup, SWT.CHECK);
downloadLangCheck.setText("Download lang.");
downloadLangCheck.setEnabled(false);
downloadAllPlaysCheck = new Button(optionsGroup, SWT.CHECK);
downloadAllPlaysCheck.setText(" Download plays (all)");
downloadAllPlaysCheck.setEnabled(false); // enabled when download plays checked
Button ReloadQRCodesCheck = new Button(optionsGroup, SWT.CHECK);
ReloadQRCodesCheck.setText("Reload QR codes");
ReloadQRCodesCheck.setEnabled(false);
Button namesImgCheck = new Button(optionsGroup, SWT.CHECK);
namesImgCheck.setText("Names in images");
namesImgCheck.setEnabled(false);
Button useQrCodesCheck = new Button(optionsGroup, SWT.CHECK);
useQrCodesCheck.setText("Use QR codes");
useQrCodesCheck.setEnabled(false);
}
private void createRunNanDeckControls(Composite compo) {
Button runNandeckBtn = new Button(compo, SWT.LEFT);
runNandeckBtn.setText("Run nanDeck");
runNandeckBtn.addSelectionListener(new SelectionAdapter() {
});
}
private void createLoadGamesControls(Composite compo) {
Button loadGamesBtn = new Button(compo, SWT.LEFT);
loadGamesBtn.setText("Load games");
loadGamesBtn.addSelectionListener(new SelectionAdapter() {
});
ProgressBar progressBar = new ProgressBar(compo, SWT.SMOOTH);
progressBar.setLayoutData(new GridData(SWT.FILL, SWT.TOP, true, false));
monitor = new DownloadProgressMonitor();
Job.getJobManager().setProgressProvider(new ProgressProvider() {
@Override
public IProgressMonitor createMonitor(Job job) {
return monitor.addJob(job);
}
});
}
}

+ 0
- 22
xyz.veronie.bgg.ui/src/xyz/veronie/bgg/ui/parts/LoadThingDetailsPart.java 파일 보기

@@ -1,22 +0,0 @@
package xyz.veronie.bgg.ui.parts;
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 LoadThingDetailsPart {
@PostConstruct
public void createControls(Composite parent) {
Composite main = new Composite(parent, SWT.FILL);
main.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, false));
GridLayout layout = new GridLayout(5, false);
main.setLayout(layout);
}
}

xyz.veronie.bgg.ui/src/xyz/veronie/bgg/ui/parts/LoadFromBggPart.java → xyz.veronie.bgg.ui/src/xyz/veronie/bgg/ui/parts/PreparePart.java 파일 보기

@@ -7,6 +7,7 @@ import javax.annotation.PostConstruct;
import javax.inject.Inject;
import org.eclipse.e4.core.services.events.IEventBroker;
import org.eclipse.e4.ui.workbench.modeling.EPartService;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.jface.viewers.ArrayContentProvider;
import org.eclipse.jface.viewers.ComboViewer;
@@ -34,7 +35,6 @@ import xyz.veronie.bgg.result.ThingProvider;
import xyz.veronie.bgg.types.EventConstants;
import xyz.veronie.bgg.types.ResultAction;
import xyz.veronie.bgg.types.SourceFilter;
import xyz.veronie.bgg.types.Subtype;
import xyz.veronie.bgg.ui.filters.AgeSourceFilter;
import xyz.veronie.bgg.ui.filters.BggUserSourceFilter;
import xyz.veronie.bgg.ui.filters.FamilySourceFilter;
@@ -48,7 +48,10 @@ import xyz.veronie.bgg.ui.helpers.CommonControls;
/// Has controls to download a list of thing IDs (+some meta info) from BGG.
/// There are different ways to configure which IDs to retrieve.
public class LoadFromBggPart {
public class PreparePart {
@Inject
EPartService partService;
@Inject
private ResultConfigManager configManager;
@@ -64,15 +67,14 @@ public class LoadFromBggPart {
@Inject private YearSourceFilter yearSourceFilter;
@Inject private SearchSourceFilter searchSourceFilter;
@Inject private BggApi bggApi;
private Composite mainComposite;
@PostConstruct
public void createControls(Composite parent) {
Composite main = new Composite(parent, SWT.FILL);
main.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, false));
GridLayout layout = new GridLayout(5, false);
main.setLayout(layout);
mainComposite = new Composite(parent, SWT.FILL);
mainComposite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false));
mainComposite.setLayout(new GridLayout(1, false));
// // contains configuration options for download of the bgg thing ID list
// Group dlConfigGroup = new Group(main, SWT.SHADOW_ETCHED_IN);
@@ -82,12 +84,15 @@ public class LoadFromBggPart {
// GridLayout layoutG = new GridLayout(2, false);
// dlConfigGroup.setLayout(layoutG);
Label lblSource = new Label(main, SWT.LEFT);
Composite sourceSelectCompo = new Composite(mainComposite, SWT.FILL);
sourceSelectCompo.setLayout(new GridLayout(2, false));
Label lblSource = new Label(sourceSelectCompo, SWT.LEFT);
lblSource.setText("Source: ");
lblSource.setLayoutData(new GridData(SWT.LEFT, SWT.FILL, false, false));
// choose the bgg data source
ComboViewer cbSource = new ComboViewer(main, SWT.READ_ONLY);
ComboViewer cbSource = new ComboViewer(sourceSelectCompo, SWT.READ_ONLY);
cbSource.getCombo().setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1));
cbSource.setContentProvider(ArrayContentProvider.getInstance());
List<SourceFilter> sources = new ArrayList<SourceFilter>();
@@ -99,20 +104,14 @@ public class LoadFromBggPart {
cbSource.setSelection(new StructuredSelection(configManager.getResultConfig().source));
// listener is configured further below
CommonControls.makeEmptySpace(main, 3);
CommonControls.makeEmptySpace(mainComposite, 2);
// area to display filter controls
// next row:
// area to display filter controls in
Group gFilters = new Group(main, SWT.SHADOW_ETCHED_IN);
Group gFilters = new Group(mainComposite, SWT.SHADOW_ETCHED_IN);
gFilters.setText("");
GridData gdf = new GridData(SWT.FILL, SWT.FILL, false, false);
gdf.horizontalSpan = 5;
gFilters.setLayoutData(gdf);
gFilters.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false));
showFilter(gFilters, (IStructuredSelection)cbSource.getSelection()); // set content to initial selection
cbSource.addSelectionChangedListener(new ISelectionChangedListener() { // later, its content will be set via the dropdown
@@ -127,16 +126,14 @@ public class LoadFromBggPart {
});
// next row:
CommonControls.makeEmptySpace(main, 5);
// next row
Composite fetchCompo = new Composite(mainComposite, SWT.FILL);
fetchCompo.setLayout(new GridLayout(4, false));
// choose action on result list
Button btDownload = new Button(main, SWT.PUSH);
Button btDownload = new Button(fetchCompo, SWT.PUSH);
GridData gd = new GridData(SWT.LEFT, SWT.FILL, false, false);
gd.horizontalSpan = 2;
btDownload.setLayoutData(gd);
btDownload.setText("Fetch");
btDownload.addSelectionListener(new SelectionAdapter() {
@@ -150,7 +147,7 @@ public class LoadFromBggPart {
if(selection.getFirstElement() == SourceFilter.BGG_USER) {
String user = resultConfig.user;
if(user == null || user.isEmpty()) {
MessageDialog.openError(main.getShell(), "", "Please enter a user name.");
MessageDialog.openError(mainComposite.getShell(), "", "Please enter a user name.");
return;
} else {
eventBroker.send(EventConstants.TOPIC_STATUS, "Fetching " + selection.getFirstElement().toString() + " '" + user + "'...");
@@ -159,14 +156,14 @@ public class LoadFromBggPart {
useThingsOnResult(thingMetas);
}
catch(IllegalArgumentException ex) {
MessageDialog.openError(main.getShell(), "", ex.getMessage());
MessageDialog.openError(mainComposite.getShell(), "", ex.getMessage());
}
}
} else if(selection.getFirstElement() == SourceFilter.GEEKLIST) {
Integer geeklistId = resultConfig.geeklistId;
if(geeklistId == null) {
MessageDialog.openError(main.getShell(), "", "Please enter a geeklist id.");
MessageDialog.openError(mainComposite.getShell(), "", "Please enter a geeklist id.");
return;
} else {
eventBroker.send(EventConstants.TOPIC_STATUS, "Fetching for geeklist id '" + geeklistId + "'");
@@ -175,13 +172,13 @@ public class LoadFromBggPart {
useThingsOnResult(thingMetas);
}
catch(IllegalArgumentException ex) {
MessageDialog.openError(main.getShell(), "", ex.getMessage());
MessageDialog.openError(mainComposite.getShell(), "", ex.getMessage());
}
}
} else if(selection.getFirstElement() == SourceFilter.FAMILY) {
Integer familyId = resultConfig.familyId;
if(familyId == null) {
MessageDialog.openError(main.getShell(), "", "Please enter a family id.");
MessageDialog.openError(mainComposite.getShell(), "", "Please enter a family id.");
return;
} else {
eventBroker.send(EventConstants.TOPIC_STATUS, "Fetching for family id '" + familyId + "'");
@@ -190,7 +187,7 @@ public class LoadFromBggPart {
useThingsOnResult(thingMetas);
}
catch(IllegalArgumentException ex) {
MessageDialog.openError(main.getShell(), "", ex.getMessage());
MessageDialog.openError(mainComposite.getShell(), "", ex.getMessage());
}
}
}
@@ -217,11 +214,11 @@ public class LoadFromBggPart {
});
Label lblAct = new Label(main, SWT.LEFT);
Label lblAct = new Label(fetchCompo, SWT.LEFT);
lblAct.setText("and");
lblAct.setLayoutData(new GridData(SWT.CENTER, SWT.FILL, false, false));
ComboViewer cbAct = new ComboViewer(main, SWT.READ_ONLY);
ComboViewer cbAct = new ComboViewer(fetchCompo, SWT.READ_ONLY);
GridData gdact = new GridData(SWT.FILL, SWT.FILL, false, false);
cbAct.getCombo().setLayoutData(gdact);
cbAct.setContentProvider(ArrayContentProvider.getInstance());
@@ -240,29 +237,18 @@ public class LoadFromBggPart {
});
Label toResultLabel = new Label(main, SWT.LEFT);
Label toResultLabel = new Label(fetchCompo, 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();
mainComposite.pack();
mainComposite.layout();
}
/// show different filter controls depending on selection in cbSource ComboViewer
public void showFilter(Composite parent, IStructuredSelection selection) {
private void showFilter(Composite parent, IStructuredSelection selection) {
SourceFilter elem = (SourceFilter) selection.getFirstElement();
// clean up
@@ -300,6 +286,9 @@ public class LoadFromBggPart {
System.out.println("construct " + elem + " (not implemented yet, try another one)");
}
parent.pack();
mainComposite.pack();
mainComposite.layout(true, true);
}

+ 2
- 1
xyz.veronie.bgg.ui/src/xyz/veronie/bgg/ui/parts/StatusBar.java 파일 보기

@@ -42,12 +42,13 @@ public class StatusBar {
@Inject
@Optional
private void subscribeTopicSourceChanged
private void subscribeTopicStatusChanged
(@UIEventTopic(EventConstants.TOPIC_STATUS)
String text) {
statusLabel.setText(text);
statusLabel.computeSize(SWT.DEFAULT, SWT.DEFAULT, true);
statusLabel.getParent().pack();
System.out.println("Status: " + text);
}
}

+ 14
- 0
xyz.veronie.bgg.ui/src/xyz/veronie/bgg/ui/result/DownloadProgressMonitor.java 파일 보기

@@ -0,0 +1,14 @@
package xyz.veronie.bgg.ui.result;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.NullProgressMonitor;
import org.eclipse.core.runtime.jobs.Job;
public class DownloadProgressMonitor extends NullProgressMonitor {
public IProgressMonitor addJob(Job job) {
// TODO Auto-generated method stub
return null;
}
}

불러오는 중...
취소
저장