diff options
author | Artur Signell <artur@vaadin.com> | 2012-08-13 18:34:33 +0300 |
---|---|---|
committer | Artur Signell <artur@vaadin.com> | 2012-08-13 19:18:33 +0300 |
commit | e85d933b25cc3c5cc85eb7eb4b13b950fd8e1569 (patch) | |
tree | 9ab6f13f7188cab44bbd979b1cf620f15328a03f /server/src/com/vaadin/event/dd/acceptcriteria/SourceIs.java | |
parent | 14dd4d0b28c76eb994b181a4570f3adec53342e6 (diff) | |
download | vaadin-framework-e85d933b25cc3c5cc85eb7eb4b13b950fd8e1569.tar.gz vaadin-framework-e85d933b25cc3c5cc85eb7eb4b13b950fd8e1569.zip |
Moved server files to a server src folder (#9299)
Diffstat (limited to 'server/src/com/vaadin/event/dd/acceptcriteria/SourceIs.java')
-rw-r--r-- | server/src/com/vaadin/event/dd/acceptcriteria/SourceIs.java | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/server/src/com/vaadin/event/dd/acceptcriteria/SourceIs.java b/server/src/com/vaadin/event/dd/acceptcriteria/SourceIs.java new file mode 100644 index 0000000000..d4fd20c952 --- /dev/null +++ b/server/src/com/vaadin/event/dd/acceptcriteria/SourceIs.java @@ -0,0 +1,67 @@ +/* +@VaadinApache2LicenseForJavaFiles@ + */ +/** + * + */ +package com.vaadin.event.dd.acceptcriteria; + +import java.util.logging.Level; +import java.util.logging.Logger; + +import com.vaadin.event.TransferableImpl; +import com.vaadin.event.dd.DragAndDropEvent; +import com.vaadin.terminal.PaintException; +import com.vaadin.terminal.PaintTarget; +import com.vaadin.ui.Component; + +/** + * Client side criteria that checks if the drag source is one of the given + * components. + * + * @since 6.3 + */ +@SuppressWarnings("serial") +public class SourceIs extends ClientSideCriterion { + + private Component[] components; + + public SourceIs(Component... component) { + components = component; + } + + @Override + public void paintContent(PaintTarget target) throws PaintException { + super.paintContent(target); + int paintedComponents = 0; + for (int i = 0; i < components.length; i++) { + Component c = components[i]; + if (c.getApplication() != null) { + target.addAttribute("component" + paintedComponents++, c); + } else { + Logger.getLogger(SourceIs.class.getName()) + .log(Level.WARNING, + "SourceIs component {0} at index {1} is not attached to the component hierachy and will thus be ignored", + new Object[] { c.getClass().getName(), + Integer.valueOf(i) }); + } + } + target.addAttribute("c", paintedComponents); + } + + @Override + public boolean accept(DragAndDropEvent dragEvent) { + if (dragEvent.getTransferable() instanceof TransferableImpl) { + Component sourceComponent = ((TransferableImpl) dragEvent + .getTransferable()).getSourceComponent(); + for (Component c : components) { + if (c == sourceComponent) { + return true; + } + } + } + + return false; + } + +}
\ No newline at end of file |