/*******************************************************************************
* Copyright (c) 2009, 2010 Progress Software Corporation.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
******************************************************************************/
// Copyright (c) 2009 Progress Software Corporation.
package org.fusesource.tools.messaging.jms.message;
import javax.jms.JMSException;
import org.apache.activemq.command.ActiveMQTextMessage;
import org.fusesource.tools.message.extensions.IMessageEditorExtension;
import org.fusesource.tools.message.extensions.IMessageViewerExtension;
import org.fusesource.tools.messaging.jms.ui.JMSTextMessageTypeUI;
public class FUSEXMLMessageTypeUI extends JMSTextMessageTypeUI {
@Override
public IMessageEditorExtension getEditorExtension() {
return new FUSEXMLMessageEditorExtension();
}
@Override
public boolean canHandle(Object message) {
// FUSE XML does not have separate XML message type extensions
// Uses ActiveMQTextMessage to send XML content also.
// We do a primitive check here, to plug-in XML viewer control, for
// better display of XML messages
if (message instanceof ActiveMQTextMessage) {
ActiveMQTextMessage textMessage = (ActiveMQTextMessage) message;
try {
String text = textMessage.getText();
if (text == null) {
return false;
}
text = text.trim();
if ((text.startsWith("<")) && (text.endsWith(">"))) {
return true;
}
} catch (JMSException e) {
e.printStackTrace();
}
}
return false;
}
@Override
public IMessageViewerExtension getViewerExtension() {
return new FUSEXMLMessageViewer();
}
}