//{HEADER
/**
* This class is part of jnex 'Nexirius Application Framework for Java'
*
* Source File Date: Mon Feb 16 20:46:14 GMT+01:00 2004
* @version: 2.8 (Wed Feb 18 07:27:51 GMT+01:00 2004)
* Class name: com.nexirius.com.nexirius.multimail.dataviewer.TextViewer
*
* Copyright (C) Nexirius GmbH, CH-4450 Sissach, Switzerland (www.nexirius.ch)
*
* <p>This library is free software; you can redistribute it and/or<br>
* modify it under the terms of the GNU Lesser General Public<br>
* License as published by the Free Software Foundation; either<br>
* version 2.1 of the License, or (at your option) any later version.</p>
*
* <p>This library is distributed in the hope that it will be useful,<br>
* but WITHOUT ANY WARRANTY; without even the implied warranty of<br>
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU<br>
* Lesser General Public License for more details.</p>
*
* <p>You should have received a copy of the GNU Lesser General Public<br>
* License along with this library; if not, write to the Free Software<br>
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA</p>
* </blockquote>
*
* <p>
* Nexirius GmbH, hereby disclaims all copyright interest in<br>
* the library jnex' 'Nexirius Application Framework for Java' written<br>
* by Marcel Baumann.</p>
*/
//}HEADER
package com.nexirius.multimail.dataviewer;
import java.awt.*;
import javax.swing.*;
import javax.swing.border.EmptyBorder;
import com.nexirius.framework.datamodel.DataModel;
import com.nexirius.framework.datamodel.DataModelAdaptor;
import com.nexirius.framework.datamodel.DataModelEvent;
import com.nexirius.framework.dataviewer.HTMLViewerCreator;
import com.nexirius.framework.dataviewer.ViewerFactory;
import com.nexirius.framework.gadgets.ArrayLayout;
import com.nexirius.framework.swing.*;
import com.nexirius.multimail.datamodel.MainModel;
public class TextViewer extends JPanel implements SwingViewer {
public static final String _NEXIRIUS_VERSION = "2.8";
MainModel mainModel;
JSplitPane split;
JComponent htmlViewer;
JComponent textViewer;
public TextViewer()
{
}
public JComponent createJComponent(ViewerFactory factory) {
setLayout(new BorderLayout());
try {
split = new JSplitPane();
htmlViewer = createHTMLViewer("text", factory);
textViewer = createTextEditor("text", factory);
split.setLeftComponent(createTextEditor("textTemplate", factory));
split.setRightComponent(textViewer);
add(split, BorderLayout.CENTER);
} catch (Exception ex)
{
ex.printStackTrace();
}
return this;
}
private JComponent createTextEditor(String child, ViewerFactory factory) throws Exception {
JComponent comp = factory.createDefaultEditor(mainModel.getViewableChild(child)).getJComponent();
comp.setBackground(factory.getClientResource().getColor("labelBackground"));
comp.setPreferredSize(new Dimension(300, 300));
return comp;
}
private JComponent createHTMLViewer(String child, ViewerFactory factory) throws Exception {
JComponent comp = factory.createViewer(new HTMLViewerCreator(false), mainModel.getViewableChild(child)).getJComponent();
comp.setBackground(factory.getClientResource().getColor("labelBackground"));
comp = new JScrollPane(comp);
comp.setPreferredSize(new Dimension(200, 300));
return comp;
}
public boolean isEditor() {
return true;
}
public void setDataModel(DataModel model) {
this.mainModel = (MainModel)model;
mainModel.getHtml().addDataModelListener(new MimeListener());
}
public DataModel getDataModel() {
return mainModel;
}
class MimeListener extends DataModelAdaptor {
public void dataModelChangeValue(DataModelEvent ev)
{
if (mainModel.getHtml().getBoolean()) {
split.setRightComponent(htmlViewer);
} else {
split.setRightComponent(textViewer);
}
}
}
}