Sfoglia il codice sorgente

Improved layout / display of filter flags.

pull/14/head
veronie 4 anni fa
parent
commit
d3f2067c54
5 ha cambiato i file con 116 aggiunte e 35 eliminazioni
  1. +1
    -1
      xyz.veronie.bgg.ui/Application.e4xmi
  2. +30
    -16
      xyz.veronie.bgg.ui/src/xyz/veronie/bgg/ui/filters/BggUserSourceFilter.java
  3. +24
    -17
      xyz.veronie.bgg.ui/src/xyz/veronie/bgg/ui/filters/composites/FilterFlagComposite.java
  4. +60
    -0
      xyz.veronie.bgg.ui/src/xyz/veronie/bgg/ui/filters/composites/SwitchLabel.java
  5. +1
    -1
      xyz.veronie.bgg.ui/src/xyz/veronie/bgg/ui/parts/BatMain.java

+ 1
- 1
xyz.veronie.bgg.ui/Application.e4xmi Vedi File

@@ -1,6 +1,6 @@
<?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="700" height="700">
<children xsi:type="basic:TrimmedWindow" xmi:id="_QDxdgEqSEeqT5sxfmvJ5Tg" elementId="xyz.veronie.bgg.ui.trimmedwindow.main" label="BGG Tool Another" width="700" height="800">
<children xsi:type="basic:PartStack" xmi:id="_uw_Z4F9REeuvNqpgCDWpdQ" elementId="xyz.veronie.bgg.ui.partstack.0">
<children xsi:type="basic:Part" xmi:id="_co2toF9CEeuvNqpgCDWpdQ" elementId="xyz.veronie.bgg.ui.part.batmain" contributionURI="bundleclass://xyz.veronie.bgg.ui/xyz.veronie.bgg.ui.parts.BatMain" label="Home"/>
<children xsi:type="basic:Part" xmi:id="_JsfvUF9YEeuvNqpgCDWpdQ" elementId="xyz.veronie.bgg.ui.part.fetch" visible="false" contributionURI="bundleclass://xyz.veronie.bgg.ui/xyz.veronie.bgg.ui.parts.FetchPart" label="Fetch">


+ 30
- 16
xyz.veronie.bgg.ui/src/xyz/veronie/bgg/ui/filters/BggUserSourceFilter.java Vedi File

@@ -14,8 +14,10 @@ import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jface.viewers.SelectionChangedEvent;
import org.eclipse.jface.viewers.StructuredSelection;
import org.eclipse.swt.SWT;
import org.eclipse.swt.custom.ScrolledComposite;
import org.eclipse.swt.events.FocusAdapter;
import org.eclipse.swt.events.FocusEvent;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Combo;
@@ -82,27 +84,39 @@ public class BggUserSourceFilter {
});
Composite centerComposite = new Composite(main, SWT.NONE);
centerComposite.setLayout(new GridLayout(1, false));
centerComposite.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1));
// centerComposite.setLayout(new FillLayout(SWT.VERTICAL));
Composite bottomComposite = new Composite(main, SWT.NONE);
bottomComposite.setLayout(new GridLayout(1, false));
bottomComposite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1));
Label infoLabel = new Label(centerComposite, SWT.LEFT);
Label infoLabel = new Label(bottomComposite, 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 = 2;
infoLabel.setLayoutData(gdInfo);
new FilterFlagComposite(centerComposite, UserFlag.OWN, configManager, eventBroker);
new FilterFlagComposite(centerComposite, UserFlag.PREORDERED, configManager, eventBroker);
new FilterFlagComposite(centerComposite, UserFlag.WISHLIST, configManager, eventBroker);
new FilterFlagComposite(centerComposite, UserFlag.WTB, configManager, eventBroker);
new FilterFlagComposite(centerComposite, UserFlag.WTP, configManager, eventBroker);
new FilterFlagComposite(centerComposite, UserFlag.WANT, configManager, eventBroker);
new FilterFlagComposite(centerComposite, UserFlag.PREVIOUSLY_OWNED, configManager, eventBroker);
new FilterFlagComposite(centerComposite, UserFlag.PLAYED, configManager, eventBroker);
new FilterFlagComposite(centerComposite, UserFlag.TRADE, configManager, eventBroker);
new FilterFlagComposite(centerComposite, UserFlag.RATED, configManager, eventBroker);
new FilterFlagComposite(centerComposite, UserFlag.COMMENT, configManager, eventBroker);
// ScrolledComposite flagsComposite = new ScrolledComposite(mainComposite, SWT.V_SCROLL);
// flagsComposite.setMinHeight(300);
// flagsComposite.setExpandVertical(true);
// flagsComposite.setExpandHorizontal(true);
// flagsComposite.setAlwaysShowScrollBars(false);
// //flagsComposite.setLayout(new FillLayout(SWT.VERTICAL));
Composite flagsComposite = new Composite(bottomComposite, SWT.NONE);
flagsComposite.setLayout(new GridLayout(2, false));
flagsComposite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1));
new FilterFlagComposite(flagsComposite, UserFlag.OWN, configManager, eventBroker);
new FilterFlagComposite(flagsComposite, UserFlag.PREORDERED, configManager, eventBroker);
new FilterFlagComposite(flagsComposite, UserFlag.WISHLIST, configManager, eventBroker);
new FilterFlagComposite(flagsComposite, UserFlag.WTB, configManager, eventBroker);
new FilterFlagComposite(flagsComposite, UserFlag.WTP, configManager, eventBroker);
new FilterFlagComposite(flagsComposite, UserFlag.WANT, configManager, eventBroker);
new FilterFlagComposite(flagsComposite, UserFlag.PREVIOUSLY_OWNED, configManager, eventBroker);
new FilterFlagComposite(flagsComposite, UserFlag.PLAYED, configManager, eventBroker);
new FilterFlagComposite(flagsComposite, UserFlag.TRADE, configManager, eventBroker);
new FilterFlagComposite(flagsComposite, UserFlag.RATED, configManager, eventBroker);
new FilterFlagComposite(flagsComposite, UserFlag.COMMENT, configManager, eventBroker);
parent.pack();
parent.layout(true, true);


+ 24
- 17
xyz.veronie.bgg.ui/src/xyz/veronie/bgg/ui/filters/composites/FilterFlagComposite.java Vedi File

@@ -2,6 +2,8 @@ package xyz.veronie.bgg.ui.filters.composites;
import org.eclipse.e4.core.services.events.IEventBroker;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.MouseEvent;
import org.eclipse.swt.events.MouseListener;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.layout.GridData;
@@ -18,7 +20,7 @@ import xyz.veronie.bgg.types.UserFlagEvent;
public class FilterFlagComposite extends Composite {
private Button btnFlagSwitch;
private SwitchLabel flagSwitch;
/**
* Create the composite.
@@ -41,15 +43,16 @@ public class FilterFlagComposite extends Composite {
btnCheckFlag.setText(flag.toString());
btnCheckFlag.setSelection(isTurnedOn);
GridData gd_btnCheckFlag = new GridData(SWT.RIGHT, SWT.CENTER, false, false, 1, 1);
gd_btnCheckFlag.widthHint = 100;
gd_btnCheckFlag.widthHint = 120;
btnCheckFlag.setLayoutData(gd_btnCheckFlag);
btnFlagSwitch = new Button(this, SWT.TOGGLE);
GridData gd_btnFlagSwitch = new GridData(SWT.LEFT, SWT.CENTER, false, false, 1, 1);
gd_btnFlagSwitch.widthHint = 30;
flagSwitch = new SwitchLabel(this, SWT.NONE);
flagSwitch.setOnImage(ResourceManager.getPluginImage("xyz.veronie.bgg.ui", "icons/noun_switch on_30x30.png"));
flagSwitch.setOffImage(ResourceManager.getPluginImage("xyz.veronie.bgg.ui", "icons/noun_switch off_30x30.png"));
btnFlagSwitch.setEnabled(isTurnedOn);
flagSwitch.setEnabled(isTurnedOn);
if(isTurnedOn) {
if(flagState.equals(FilterFlagState.IS)) {
setSwitchOn();
@@ -60,15 +63,21 @@ public class FilterFlagComposite extends Composite {
setSwitchOn();
}
btnFlagSwitch.addSelectionListener(new SelectionAdapter() {
flagSwitch.addMouseListener(new MouseListener() {
@Override
public void widgetSelected(SelectionEvent e) {
Button source = (Button)e.getSource();
public void mouseDoubleClick(MouseEvent e) {
}
@Override
public void mouseDown(MouseEvent e) {
}
@Override
public void mouseUp(MouseEvent e) {
UserFlagEvent ufe = new UserFlagEvent();
ufe.flag = flag;
boolean isSelected = source.getSelection();
boolean isSelected = !flagSwitch.getState();
if(isSelected) {
ufe.state = FilterFlagState.IS;
setSwitchOn();
@@ -95,14 +104,14 @@ public class FilterFlagComposite extends Composite {
if(!isSelected) {
ufe.state = FilterFlagState.IGNORE;
setSwitchOn();
btnFlagSwitch.setEnabled(false);
flagSwitch.setEnabled(false);
} else {
if(btnFlagSwitch.getSelection()) {
if(flagSwitch.getState()) {
ufe.state = FilterFlagState.IS;
} else {
ufe.state = FilterFlagState.ISNOT;
}
btnFlagSwitch.setEnabled(true);
flagSwitch.setEnabled(true);
}
eventBroker.send(EventConstants.TOPIC_USERFLAG_CHANGED, ufe);
}
@@ -113,12 +122,10 @@ public class FilterFlagComposite extends Composite {
}
private void setSwitchOn() {
btnFlagSwitch.setImage(ResourceManager.getPluginImage("xyz.veronie.bgg.ui", "icons/noun_switch on_30x30.png"));
btnFlagSwitch.setSelection(true);
flagSwitch.setState(true);
}
private void setSwitchOff() {
btnFlagSwitch.setImage(ResourceManager.getPluginImage("xyz.veronie.bgg.ui", "icons/noun_switch off_30x30.png"));
btnFlagSwitch.setSelection(false);
flagSwitch.setState(false);
}


+ 60
- 0
xyz.veronie.bgg.ui/src/xyz/veronie/bgg/ui/filters/composites/SwitchLabel.java Vedi File

@@ -0,0 +1,60 @@
package xyz.veronie.bgg.ui.filters.composites;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.MouseListener;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.layout.RowLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Label;
public class SwitchLabel extends Composite {
private Label label;
private boolean isTurnedOn;
private Image imageOn;
private Image imageOff;
public SwitchLabel(Composite parent, int style) {
super(parent, style);
this.setLayout(new RowLayout());
label = new Label(this, SWT.None);
isTurnedOn = false;
}
/// set image for switch off state
public void setOnImage(Image imageOn) {
this.imageOn = imageOn;
}
/// set image for switch on state
public void setOffImage(Image imageOff) {
this.imageOff = imageOff;
}
/// Set switch state: true = on, false = off
public void setState(boolean isTurnedOn) {
this.isTurnedOn = isTurnedOn;
setSwitchImage();
}
/// Get the switch state: true = on, false = off
public boolean getState() {
return isTurnedOn;
}
private void setSwitchImage() {
label.setImage(isTurnedOn ? imageOn : imageOff);
pack();
layout();
}
@Override
public void addMouseListener(MouseListener listener) {
label.addMouseListener(listener);
}
@Override
public void setEnabled(boolean enabled) {
label.setEnabled(enabled);
}
}

+ 1
- 1
xyz.veronie.bgg.ui/src/xyz/veronie/bgg/ui/parts/BatMain.java Vedi File

@@ -45,7 +45,6 @@ import xyz.veronie.bgg.ui.helpers.BatColors;
import xyz.veronie.bgg.ui.helpers.BatLayouts;
// TODO: layout of user flags
// TODO: load thing list from DB
// TODO: image sizes
// TODO: display current thinglist name
@@ -55,6 +54,7 @@ import xyz.veronie.bgg.ui.helpers.BatLayouts;
// TODO: handle thing list overwrite
// TODO: Display selection details on game
// TODO: cache family/geeklist descriptions
// TODO: allow different screen scalings
@SuppressWarnings("restriction")
public class BatMain {


Loading…
Annulla
Salva