Skip to content
Snippets Groups Projects
Commit 4d848a21 authored by Carsten Stocklöw's avatar Carsten Stocklöw
Browse files

updated to version 2.0.3-SNAPSHOT,

extracted clipboard handling in separate class
parent 96070314
No related branches found
No related tags found
No related merge requests found
...@@ -10,7 +10,7 @@ ...@@ -10,7 +10,7 @@
<groupId>org.universAAL.tools</groupId> <groupId>org.universAAL.tools</groupId>
<packaging>bundle</packaging> <packaging>bundle</packaging>
<artifactId>tools.log_mon</artifactId> <artifactId>tools.log_mon</artifactId>
<version>2.0.1-SNAPSHOT</version> <version>2.0.3-SNAPSHOT</version>
<name>Log Monitor</name> <name>Log Monitor</name>
<description>Visualization of RDF graphs from log entries</description> <description>Visualization of RDF graphs from log entries</description>
<url /> <url />
......
/*
Copyright 2007-2014 Fraunhofer IGD, http://www.igd.fraunhofer.de
Fraunhofer-Gesellschaft - Institut f�r Graphische Datenverarbeitung
*/
package org.universAAL.tools.logmonitor.service_bus_matching.gui;
import java.awt.Toolkit;
import java.awt.datatransfer.Clipboard;
import java.awt.datatransfer.DataFlavor;
import java.awt.datatransfer.Transferable;
import java.awt.datatransfer.UnsupportedFlavorException;
import java.awt.event.ActionEvent;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import javax.swing.AbstractAction;
import javax.swing.JTextPane;
import javax.swing.TransferHandler;
public class ClipboardHandling extends AbstractAction {
private static final long serialVersionUID = 1L;
private HashMap<String, String> urlReplacement;
private TransferHandler th;
private JTextPane pane;
public ClipboardHandling(HashMap<String, String> urlReplacement, TransferHandler th, JTextPane pane) {
this.urlReplacement = urlReplacement;
this.th = th;
this.pane = pane;
}
// needed to overwrite ctrl-c
private class TransferableProxy implements Transferable {
String html = null;
String plain = null;
TransferableProxy(Clipboard c) {
Transferable transferData = c.getContents(null);
for (DataFlavor dataFlavor : transferData.getTransferDataFlavors()) {
Object content = null;
try {
content = transferData.getTransferData(dataFlavor);
} catch (Exception e1) {
e1.printStackTrace();
}
if (dataFlavor.getMimeType().startsWith(
"text/html; class=java.lang.String")) {
html = (String) content;
for (Iterator<String> it = urlReplacement.keySet()
.iterator(); it.hasNext();) {
String key = it.next();
String val = urlReplacement.get(key);
html = html.replaceAll(key, val);
}
} else if (dataFlavor.getMimeType().startsWith(
"text/plain; class=java.lang.String")) {
plain = (String) content;
}
}
}
public Object getTransferData(DataFlavor flavor)
throws UnsupportedFlavorException, IOException {
if (flavor.getMimeType().startsWith(
"text/html; class=java.lang.String")) {
return html;
} else if (flavor.getMimeType().startsWith(
"text/plain; class=java.lang.String")) {
return plain;
}
return null;
}
public DataFlavor[] getTransferDataFlavors() {
ArrayList<DataFlavor> a = new ArrayList<DataFlavor>();
if (html != null) {
try {
DataFlavor f = new DataFlavor(
"text/html; class=java.lang.String");
a.add(f);
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
if (plain != null) {
try {
DataFlavor f = new DataFlavor(
"text/plain; class=java.lang.String");
a.add(f);
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
return (DataFlavor[]) a.toArray(new DataFlavor[0]);
}
public boolean isDataFlavorSupported(DataFlavor flavor) {
if (flavor.getMimeType().startsWith(
"text/html; class=java.lang.String")) {
return true;
} else if (flavor.getMimeType().startsWith(
"text/plain; class=java.lang.String")) {
return true;
}
return false;
}
};
private void printClipboardContent(Clipboard c) {
Transferable transferData = c.getContents(null);
for (DataFlavor dataFlavor : transferData.getTransferDataFlavors()) {
Object content = null;
try {
content = transferData.getTransferData(dataFlavor);
} catch (Exception e1) {
e1.printStackTrace();
}
System.out.println("--Content: " + dataFlavor.getMimeType() + "\n"
+ content);
}
}
public void actionPerformed(ActionEvent e) {
// System.out.println("--- clipboard");
// String selection = getSelectedText();
// StringSelection data = new StringSelection(selection);
// Clipboard clipboard = Toolkit.getDefaultToolkit()
// .getSystemClipboard();
// clipboard.setContents(data, data);
// System.out.println("-- selection: " + selection);
// copy the current selection to our own clipboard
Clipboard clipboard = new Clipboard("");
th.exportToClipboard(pane, clipboard, TransferHandler.COPY);
// System.out.println("\n-------------------------------------------------\ninternal clipboard\n");
// printClipboardContent(clipboard);
// create a new Transferable
Transferable contents = new TransferableProxy(clipboard);
// copy content to system clipboard
Clipboard systemClipboard = Toolkit.getDefaultToolkit()
.getSystemClipboard();
systemClipboard.setContents(contents, null);
// System.out.println("\n-------------------------------------------------\nsystem clipboard\n");
// printClipboardContent(systemClipboard);
}
}
/* /*
Copyright 2007-2014 Fraunhofer IGD, http://www.igd.fraunhofer.de Copyright 2007-2014 Fraunhofer IGD, http://www.igd.fraunhofer.de
Fraunhofer-Gesellschaft - Institut fr Graphische Datenverarbeitung Fraunhofer-Gesellschaft - Institut fr Graphische Datenverarbeitung
*/ */
package org.universAAL.tools.logmonitor.service_bus_matching.gui; package org.universAAL.tools.logmonitor.service_bus_matching.gui;
import java.awt.BorderLayout; import java.awt.BorderLayout;
import java.awt.Font;
import java.util.Iterator; import java.util.Iterator;
import java.util.LinkedList; import java.util.LinkedList;
import javax.swing.JPanel; import javax.swing.JPanel;
......
/* /*
Copyright 2007-2014 Fraunhofer IGD, http://www.igd.fraunhofer.de Copyright 2007-2014 Fraunhofer IGD, http://www.igd.fraunhofer.de
Fraunhofer-Gesellschaft - Institut fr Graphische Datenverarbeitung Fraunhofer-Gesellschaft - Institut fr Graphische Datenverarbeitung
*/ */
package org.universAAL.tools.logmonitor.service_bus_matching.gui; package org.universAAL.tools.logmonitor.service_bus_matching.gui;
//import java.awt.Toolkit;
//import java.awt.datatransfer.Clipboard;
//import java.awt.datatransfer.DataFlavor;
//import java.awt.datatransfer.Transferable;
//import java.awt.datatransfer.UnsupportedFlavorException;
//import java.io.IOException;
import java.awt.Toolkit;
import java.awt.datatransfer.Clipboard;
import java.awt.datatransfer.DataFlavor;
import java.awt.datatransfer.Transferable;
import java.awt.datatransfer.UnsupportedFlavorException;
import java.awt.event.ActionEvent;
import java.awt.event.InputEvent; import java.awt.event.InputEvent;
import java.awt.event.KeyEvent; import java.awt.event.KeyEvent;
import java.io.IOException;
import java.net.URL; import java.net.URL;
import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.HashSet; import java.util.HashSet;
import java.util.Hashtable; import java.util.Hashtable;
...@@ -28,10 +14,8 @@ import java.util.Iterator; ...@@ -28,10 +14,8 @@ import java.util.Iterator;
import java.util.LinkedList; import java.util.LinkedList;
import java.util.List; import java.util.List;
import javax.swing.AbstractAction;
import javax.swing.JTextPane; import javax.swing.JTextPane;
import javax.swing.KeyStroke; import javax.swing.KeyStroke;
import javax.swing.TransferHandler;
import javax.swing.event.HyperlinkEvent; import javax.swing.event.HyperlinkEvent;
import javax.swing.event.HyperlinkListener; import javax.swing.event.HyperlinkListener;
import javax.swing.text.DefaultCaret; import javax.swing.text.DefaultCaret;
...@@ -49,7 +33,6 @@ import org.universAAL.middleware.service.owls.profile.ServiceProfile; ...@@ -49,7 +33,6 @@ import org.universAAL.middleware.service.owls.profile.ServiceProfile;
import org.universAAL.tools.logmonitor.Activator; import org.universAAL.tools.logmonitor.Activator;
import org.universAAL.tools.logmonitor.service_bus_matching.LogMonitor; import org.universAAL.tools.logmonitor.service_bus_matching.LogMonitor;
import org.universAAL.tools.logmonitor.service_bus_matching.Matchmaking; import org.universAAL.tools.logmonitor.service_bus_matching.Matchmaking;
import org.universAAL.tools.logmonitor.service_bus_matching.Sparul;
import org.universAAL.tools.logmonitor.service_bus_matching.URI; import org.universAAL.tools.logmonitor.service_bus_matching.URI;
import org.universAAL.tools.logmonitor.service_bus_matching.LogMonitor.ProfileInfo; import org.universAAL.tools.logmonitor.service_bus_matching.LogMonitor.ProfileInfo;
import org.universAAL.tools.logmonitor.service_bus_matching.Matchmaking.SingleMatching; import org.universAAL.tools.logmonitor.service_bus_matching.Matchmaking.SingleMatching;
...@@ -86,99 +69,6 @@ public class MatchmakingPane extends JTextPane { ...@@ -86,99 +69,6 @@ public class MatchmakingPane extends JTextPane {
} }
} }
// needed to overwrite ctrl-c
private class TransferableProxy implements Transferable {
String html = null;
String plain = null;
TransferableProxy(Clipboard c) {
Transferable transferData = c.getContents(null);
for (DataFlavor dataFlavor : transferData.getTransferDataFlavors()) {
Object content = null;
try {
content = transferData.getTransferData(dataFlavor);
} catch (Exception e1) {
e1.printStackTrace();
}
if (dataFlavor.getMimeType().startsWith(
"text/html; class=java.lang.String")) {
html = (String) content;
for (Iterator<String> it = urlReplacement.keySet().iterator(); it.hasNext();) {
String key = it.next();
String val = urlReplacement.get(key);
html = html.replaceAll(key, val);
}
} else if (dataFlavor.getMimeType().startsWith(
"text/plain; class=java.lang.String")) {
plain = (String) content;
}
}
}
public Object getTransferData(DataFlavor flavor)
throws UnsupportedFlavorException, IOException {
if (flavor.getMimeType().startsWith(
"text/html; class=java.lang.String")) {
return html;
} else if (flavor.getMimeType().startsWith(
"text/plain; class=java.lang.String")) {
return plain;
}
return null;
}
public DataFlavor[] getTransferDataFlavors() {
ArrayList<DataFlavor> a = new ArrayList<DataFlavor>();
if (html != null) {
try {
DataFlavor f = new DataFlavor(
"text/html; class=java.lang.String");
a.add(f);
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
if (plain != null) {
try {
DataFlavor f = new DataFlavor(
"text/plain; class=java.lang.String");
a.add(f);
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
return (DataFlavor[]) a.toArray(new DataFlavor[0]);
}
public boolean isDataFlavorSupported(DataFlavor flavor) {
if (flavor.getMimeType().startsWith(
"text/html; class=java.lang.String")) {
return true;
} else if (flavor.getMimeType().startsWith(
"text/plain; class=java.lang.String")) {
return true;
}
return false;
}
};
private void printClipboardContent(Clipboard c) {
Transferable transferData = c.getContents(null);
for (DataFlavor dataFlavor : transferData.getTransferDataFlavors()) {
Object content = null;
try {
content = transferData.getTransferData(dataFlavor);
} catch (Exception e1) {
e1.printStackTrace();
}
System.out.println("--Content: " + dataFlavor.getMimeType() + "\n"
+ content);
}
}
public MatchmakingPane() { public MatchmakingPane() {
setEditable(false); setEditable(false);
setContentType("text/html"); setContentType("text/html");
...@@ -189,39 +79,9 @@ public class MatchmakingPane extends JTextPane { ...@@ -189,39 +79,9 @@ public class MatchmakingPane extends JTextPane {
// overwrite ctrl-c // overwrite ctrl-c
final MatchmakingPane pane = this; final MatchmakingPane pane = this;
getInputMap() getInputMap()
.put( .put(KeyStroke.getKeyStroke(KeyEvent.VK_C,
KeyStroke.getKeyStroke(KeyEvent.VK_C, InputEvent.CTRL_DOWN_MASK), "uaal_copy");
InputEvent.CTRL_DOWN_MASK), "uaal_copy"); getActionMap().put("uaal_copy", new ClipboardHandling(urlReplacement, getTransferHandler(), pane));
getActionMap().put("uaal_copy", new AbstractAction() {
private static final long serialVersionUID = 1L;
public void actionPerformed(ActionEvent e) {
// System.out.println("--- clipboard");
// String selection = getSelectedText();
// StringSelection data = new StringSelection(selection);
// Clipboard clipboard = Toolkit.getDefaultToolkit()
// .getSystemClipboard();
// clipboard.setContents(data, data);
// System.out.println("-- selection: " + selection);
// copy the current selection to our own clipboard
TransferHandler th = getTransferHandler();
Clipboard clipboard = new Clipboard("");
th.exportToClipboard(pane, clipboard, TransferHandler.COPY);
// System.out.println("\n-------------------------------------------------\ninternal clipboard\n");
// printClipboardContent(clipboard);
// create a new Transferable
Transferable contents = new TransferableProxy(clipboard);
// copy content to system clipboard
Clipboard systemClipboard = Toolkit.getDefaultToolkit()
.getSystemClipboard();
systemClipboard.setContents(contents, null);
// System.out.println("\n-------------------------------------------------\nsystem clipboard\n");
// printClipboardContent(systemClipboard);
}
});
} }
public void show(Matchmaking m) { public void show(Matchmaking m) {
...@@ -300,8 +160,8 @@ public class MatchmakingPane extends JTextPane { ...@@ -300,8 +160,8 @@ public class MatchmakingPane extends JTextPane {
s.append(getTableRowHTML("--", s.append(getTableRowHTML("--",
"- unknown value, perhaps a unit conversion? -")); "- unknown value, perhaps a unit conversion? -"));
else else
s.append(getTableRowHTML("at the property path:", getPropPathHTML( s.append(getTableRowHTML("at the property path:",
(PropertyPath) form, false))); getPropPathHTML((PropertyPath) form, false)));
s.append(getTableEndHTML()); s.append(getTableEndHTML());
return s.toString(); return s.toString();
...@@ -314,15 +174,17 @@ public class MatchmakingPane extends JTextPane { ...@@ -314,15 +174,17 @@ public class MatchmakingPane extends JTextPane {
if (ProcessEffect.TYPE_PROCESS_ADD_EFFECT.equals(type)) { if (ProcessEffect.TYPE_PROCESS_ADD_EFFECT.equals(type)) {
s.append("Add effect:"); s.append("Add effect:");
s.append(getTableStartHTML()); s.append(getTableStartHTML());
s.append(getTableRowHTML("add the value:", effect.getProperty( s.append(getTableRowHTML(
ProcessEffect.PROP_PROCESS_PROPERTY_VALUE).toString())); "add the value:",
s effect.getProperty(
.append(getTableRowHTML( ProcessEffect.PROP_PROCESS_PROPERTY_VALUE)
"to the property path:", .toString()));
getPropPathHTML( s.append(getTableRowHTML(
(PropertyPath) effect "to the property path:",
.getProperty(ProcessEffect.PROP_PROCESS_AFFECTED_PROPERTY), getPropPathHTML(
false))); (PropertyPath) effect
.getProperty(ProcessEffect.PROP_PROCESS_AFFECTED_PROPERTY),
false)));
s.append(getTableEndHTML()); s.append(getTableEndHTML());
} else if (ProcessEffect.TYPE_PROCESS_CHANGE_EFFECT.equals(type)) { } else if (ProcessEffect.TYPE_PROCESS_CHANGE_EFFECT.equals(type)) {
s.append("Change effect:"); s.append("Change effect:");
...@@ -330,24 +192,22 @@ public class MatchmakingPane extends JTextPane { ...@@ -330,24 +192,22 @@ public class MatchmakingPane extends JTextPane {
s.append(getTableRowHTML("change the value to:", effect s.append(getTableRowHTML("change the value to:", effect
.getProperty(ProcessEffect.PROP_PROCESS_PROPERTY_VALUE) .getProperty(ProcessEffect.PROP_PROCESS_PROPERTY_VALUE)
.toString())); .toString()));
s s.append(getTableRowHTML(
.append(getTableRowHTML( "at property path:",
"at property path:", getPropPathHTML(
getPropPathHTML( (PropertyPath) effect
(PropertyPath) effect .getProperty(ProcessEffect.PROP_PROCESS_AFFECTED_PROPERTY),
.getProperty(ProcessEffect.PROP_PROCESS_AFFECTED_PROPERTY), false)));
false)));
s.append(getTableEndHTML()); s.append(getTableEndHTML());
} else if (ProcessEffect.TYPE_PROCESS_REMOVE_EFFECT.equals(type)) { } else if (ProcessEffect.TYPE_PROCESS_REMOVE_EFFECT.equals(type)) {
s.append("Remove effect:"); s.append("Remove effect:");
s.append(getTableStartHTML()); s.append(getTableStartHTML());
s s.append(getTableRowHTML(
.append(getTableRowHTML( "at property path:",
"at property path:", getPropPathHTML(
getPropPathHTML( (PropertyPath) effect
(PropertyPath) effect .getProperty(ProcessEffect.PROP_PROCESS_AFFECTED_PROPERTY),
.getProperty(ProcessEffect.PROP_PROCESS_AFFECTED_PROPERTY), false)));
false)));
s.append(getTableEndHTML()); s.append(getTableEndHTML());
} }
return s.toString(); return s.toString();
...@@ -479,9 +339,7 @@ public class MatchmakingPane extends JTextPane { ...@@ -479,9 +339,7 @@ public class MatchmakingPane extends JTextPane {
int minCard = in.getMinCardinality(); int minCard = in.getMinCardinality();
int maxCard = in.getMaxCardinality(); int maxCard = in.getMaxCardinality();
if (minCard == maxCard) if (minCard == maxCard)
s s.append(getTableRowHTML("exact cardinality:", "" + maxCard));
.append(getTableRowHTML("exact cardinality:", ""
+ maxCard));
else { else {
s.append(getTableRowHTML("min cardinality:", "" + minCard)); s.append(getTableRowHTML("min cardinality:", "" + minCard));
s.append(getTableRowHTML("max cardinality:", "" + maxCard)); s.append(getTableRowHTML("max cardinality:", "" + maxCard));
...@@ -548,9 +406,7 @@ public class MatchmakingPane extends JTextPane { ...@@ -548,9 +406,7 @@ public class MatchmakingPane extends JTextPane {
} }
String val3 = getURIHTML(single.profileURI); String val3 = getURIHTML(single.profileURI);
if (single.success.booleanValue()) if (single.success.booleanValue())
s s.append(getTableRowHTML(getImageHTML("OK_16.png"), val2, val3));
.append(getTableRowHTML(getImageHTML("OK_16.png"),
val2, val3));
else else
s.append(getTableRowHTML(getImageHTML("ERROR_16.png"), val2, s.append(getTableRowHTML(getImageHTML("ERROR_16.png"), val2,
val3)); val3));
...@@ -559,9 +415,7 @@ public class MatchmakingPane extends JTextPane { ...@@ -559,9 +415,7 @@ public class MatchmakingPane extends JTextPane {
// details // details
s.append("<br>"); s.append("<br>");
s s.append(getLinkHTML("all", isVisible("all") ? "hide all" : "show all"));
.append(getLinkHTML("all", isVisible("all") ? "hide all"
: "show all"));
s.append("<br><br>"); s.append("<br><br>");
// details for request // details for request
...@@ -608,9 +462,8 @@ public class MatchmakingPane extends JTextPane { ...@@ -608,9 +462,8 @@ public class MatchmakingPane extends JTextPane {
switch (single.reason) { switch (single.reason) {
case SingleMatching.REASON_INPUT: case SingleMatching.REASON_INPUT:
s s.append(" input: input parameters do not match for property "
.append(" input: input parameters do not match for property " + getURIHTML(single.restrictedProperty));
+ getURIHTML(single.restrictedProperty));
break; break;
case SingleMatching.REASON_OUTPUT: case SingleMatching.REASON_OUTPUT:
s.append(" output: "); s.append(" output: ");
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment