/*
* Copyright 2003,2004 Colin Crist
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package hermes.browser.components;
import hermes.Hermes;
import hermes.browser.HermesBrowser;
import hermes.browser.MessageRenderer;
import java.awt.BorderLayout;
import javax.jms.Message;
import javax.swing.JPanel;
import javax.swing.JTabbedPane;
import org.apache.log4j.Logger;
import com.jidesoft.swing.JideScrollPane;
import com.jidesoft.swing.JideTabbedPane;
/**
* A panel for displaying JMS messages
*
* @author colincrist@hermesjms.com last changed by: $Author: colincrist $
* @version $Id: MessagePayloadPanel.java,v 1.3 2004/07/30 17:25:13 colincrist
* Exp $
*/
public class MessagePayloadPanel extends JPanel {
/**
*
*/
private static final long serialVersionUID = -7962228996637817501L;
private static final Logger log = Logger.getLogger(MessagePayloadPanel.class);
private final JTabbedPane tabbedPane = new JideTabbedPane();
private final String destinationName;
private Message message;
public MessagePayloadPanel(String destinationName) {
super();
this.destinationName = destinationName;
init();
}
public MessagePayloadPanel(Hermes hermes, String destinationName, Message message) {
super();
this.destinationName = destinationName;
init();
setMessage(hermes, message);
}
public Message getMessage() {
return message;
}
private void init() {
tabbedPane.setTabPlacement(JTabbedPane.BOTTOM);
setLayout(new BorderLayout());
add(tabbedPane, BorderLayout.CENTER);
}
public void setMessage(Hermes hermes, Message m) {
String selectedTitle = null;
int selectedIndex = 0;
if (tabbedPane.getSelectedIndex() > -1) {
selectedTitle = tabbedPane.getTitleAt(tabbedPane.getSelectedIndex());
}
tabbedPane.removeAll();
for (MessageRenderer renderer : HermesBrowser.getRendererManager().getRenderers()) {
if (renderer.isActive() && renderer.canRender(m)) {
JideScrollPane scrollPane = new JideScrollPane();
scrollPane.setViewportView(renderer.render(scrollPane, m));
tabbedPane.add(renderer.getDisplayName(), scrollPane);
if (renderer.getDisplayName().equals(selectedTitle)) {
selectedIndex = tabbedPane.getTabCount() - 1;
tabbedPane.setSelectedIndex(selectedIndex);
}
}
}
tabbedPane.setSelectedIndex(selectedIndex);
this.message = m;
}
}