/*
* File : TextStyleEditorPanel.java
* Created : 05-jun-2003 12:49
* By : fbusquets
*
* JClic - Authoring and playing system for educational activities
*
* Copyright (C) 2000 - 2005 Francesc Busquets & Departament
* d'Educacio de la Generalitat de Catalunya
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details (see the LICENSE file).
*/
package edu.xtec.jclic.activities.text;
import edu.xtec.jclic.beans.ColorButton;
import edu.xtec.util.FontCheck;
import edu.xtec.util.Options;
import edu.xtec.util.StreamIO;
import java.awt.Color;
import java.awt.Component;
import java.awt.Dimension;
import java.util.HashMap;
import java.util.Map;
import javax.swing.JComboBox;
import javax.swing.text.DefaultStyledDocument;
import javax.swing.text.Style;
import javax.swing.text.StyleConstants;
import javax.swing.text.StyleContext;
/**
*
* @author Francesc Busquets (fbusquets@xtec.cat)
* @version 13.09.16
*/
public class TextStyleEditorPanel extends javax.swing.JPanel implements java.beans.PropertyChangeListener, java.awt.event.ActionListener, javax.swing.event.ChangeListener {
Options options;
StyleContext sc;
private static StyleContext emptySc;
/** Creates new form TextStyleEditorPanel */
public TextStyleEditorPanel(Options options, StyleContext sc) {
this.options=options;
initComponents();
setStyleContext(sc);
}
/** This method is called from within the constructor to
* initialize the form.
* WARNING: Do NOT modify this code. The content of this method is
* always regenerated by the Form Editor.
*/
private void initComponents() {//GEN-BEGIN:initComponents
javax.swing.JLabel bgColorLb;
javax.swing.JLabel colorsLb;
javax.swing.JLabel errorBgLb;
javax.swing.JLabel errorFgLb;
javax.swing.JLabel errorLb;
java.awt.GridBagConstraints gridBagConstraints;
javax.swing.JLabel mainLb;
javax.swing.JPanel previewFrame;
javax.swing.JScrollPane previewScroll;
javax.swing.JLabel tabLb;
javax.swing.JLabel targetBgLb;
javax.swing.JLabel targetFgLb;
javax.swing.JLabel targetLb;
javax.swing.JLabel textColorLb;
mainLb = new javax.swing.JLabel();
fontFaceCombo = new JComboBox(FontCheck.getFontList(false));
fontSizeCombo = new JComboBox(FontCheck.fontSizes);
boldBtn = new javax.swing.JToggleButton();
italicBtn = new javax.swing.JToggleButton();
underlineBtn = new javax.swing.JToggleButton();
colorsLb = new javax.swing.JLabel();
textColorLb = new javax.swing.JLabel();
textColorBtn = new edu.xtec.jclic.beans.ColorButton();
textColorBtn.setOptions(options);
bgColorLb = new javax.swing.JLabel();
bgColorBtn = new edu.xtec.jclic.beans.ColorButton();
bgColorBtn.setOptions(options);
tabLb = new javax.swing.JLabel();
tabSlider = new javax.swing.JSlider();
targetLb = new javax.swing.JLabel();
targetFgLb = new javax.swing.JLabel();
targetFgColor = new edu.xtec.jclic.beans.ColorButton();
targetFgColor.setOptions(options);
targetBgLb = new javax.swing.JLabel();
targetBgColor = new edu.xtec.jclic.beans.ColorButton();
targetBgColor.setOptions(options);
errorLb = new javax.swing.JLabel();
errorFgLb = new javax.swing.JLabel();
errorFgColor = new edu.xtec.jclic.beans.ColorButton();
errorFgColor.setOptions(options);
errorBgLb = new javax.swing.JLabel();
errorBgColor = new edu.xtec.jclic.beans.ColorButton();
errorBgColor.setOptions(options);
previewFrame = new javax.swing.JPanel();
previewScroll = new javax.swing.JScrollPane();
previewPanel = new javax.swing.JTextPane();
setLayout(new java.awt.GridBagLayout());
mainLb.setText(options.getMsg("edit_text_act_mainStyle"));
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST;
gridBagConstraints.insets = new java.awt.Insets(2, 2, 2, 2);
add(mainLb, gridBagConstraints);
fontFaceCombo.setEditable(true);
fontFaceCombo.setPreferredSize(new Dimension(125, fontFaceCombo.getPreferredSize().height));
fontFaceCombo.addActionListener(this);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridwidth = 4;
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
gridBagConstraints.insets = new java.awt.Insets(2, 2, 2, 2);
add(fontFaceCombo, gridBagConstraints);
fontSizeCombo.setEditable(true);
fontSizeCombo.setPreferredSize(new Dimension(50, fontSizeCombo.getPreferredSize().height));
fontSizeCombo.addActionListener(this);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
gridBagConstraints.insets = new java.awt.Insets(2, 2, 2, 4);
add(fontSizeCombo, gridBagConstraints);
boldBtn.setIcon(new javax.swing.ImageIcon(getClass().getResource("/edu/xtec/resources/icons/font_bold.gif")));
boldBtn.setToolTipText(options.getMsg("edit_font_bold"));
boldBtn.setPreferredSize(new java.awt.Dimension(27, 27));
boldBtn.addActionListener(this);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.insets = new java.awt.Insets(2, 4, 2, 2);
add(boldBtn, gridBagConstraints);
italicBtn.setIcon(new javax.swing.ImageIcon(getClass().getResource("/edu/xtec/resources/icons/font_italic.gif")));
italicBtn.setToolTipText(options.getMsg("edit_font_italic"));
italicBtn.setPreferredSize(new java.awt.Dimension(27, 27));
italicBtn.addActionListener(this);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.insets = new java.awt.Insets(2, 2, 2, 2);
add(italicBtn, gridBagConstraints);
underlineBtn.setIcon(new javax.swing.ImageIcon(getClass().getResource("/edu/xtec/resources/icons/font_underline.gif")));
underlineBtn.setToolTipText(options.getMsg("edit_font_italic"));
underlineBtn.setPreferredSize(new java.awt.Dimension(27, 27));
underlineBtn.addActionListener(this);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER;
gridBagConstraints.insets = new java.awt.Insets(2, 2, 2, 4);
add(underlineBtn, gridBagConstraints);
colorsLb.setText(options.getMsg("edit_text_act_colors"));
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST;
gridBagConstraints.insets = new java.awt.Insets(2, 2, 2, 2);
add(colorsLb, gridBagConstraints);
textColorLb.setIcon(new javax.swing.ImageIcon(getClass().getResource("/edu/xtec/resources/icons/fg.gif")));
textColorLb.setText(":");
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST;
gridBagConstraints.insets = new java.awt.Insets(2, 4, 2, 2);
add(textColorLb, gridBagConstraints);
textColorBtn.setToolTipText(options.getMsg("edit_act_textColor_tooltip"));
textColorBtn.addPropertyChangeListener(ColorButton.PROP_COLOR, this);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
gridBagConstraints.insets = new java.awt.Insets(2, 2, 2, 2);
add(textColorBtn, gridBagConstraints);
bgColorLb.setIcon(new javax.swing.ImageIcon(getClass().getResource("/edu/xtec/resources/icons/bg.gif")));
bgColorLb.setText(":");
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST;
gridBagConstraints.insets = new java.awt.Insets(2, 4, 2, 2);
add(bgColorLb, gridBagConstraints);
bgColorBtn.setToolTipText(options.getMsg("edit_act_bgColor_tooltip"));
bgColorBtn.addPropertyChangeListener(ColorButton.PROP_COLOR, this);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER;
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
gridBagConstraints.insets = new java.awt.Insets(2, 2, 2, 4);
add(bgColorBtn, gridBagConstraints);
tabLb.setText(options.getMsg("edit_text_act_tabSize"));
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHEAST;
gridBagConstraints.insets = new java.awt.Insets(2, 2, 2, 2);
add(tabLb, gridBagConstraints);
tabSlider.setMinorTickSpacing(5);
tabSlider.setPaintLabels(true);
tabSlider.setPaintTicks(true);
tabSlider.setMajorTickSpacing(10);
tabSlider.setMaximum(50);
tabSlider.setValue(12);
tabSlider.addChangeListener(this);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
gridBagConstraints.insets = new java.awt.Insets(2, 2, 2, 2);
add(tabSlider, gridBagConstraints);
targetLb.setText(options.getMsg("edit_text_act_targetStyle"));
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST;
gridBagConstraints.insets = new java.awt.Insets(2, 2, 2, 2);
add(targetLb, gridBagConstraints);
targetFgLb.setIcon(new javax.swing.ImageIcon(getClass().getResource("/edu/xtec/resources/icons/fg.gif")));
targetFgLb.setText(":");
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST;
gridBagConstraints.insets = new java.awt.Insets(2, 4, 2, 2);
add(targetFgLb, gridBagConstraints);
targetFgColor.setToolTipText(options.getMsg("edit_act_textColor_tooltip"));
targetFgColor.addPropertyChangeListener(ColorButton.PROP_COLOR, this);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
gridBagConstraints.insets = new java.awt.Insets(2, 2, 2, 2);
add(targetFgColor, gridBagConstraints);
targetBgLb.setIcon(new javax.swing.ImageIcon(getClass().getResource("/edu/xtec/resources/icons/bg.gif")));
targetBgLb.setText(":");
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST;
gridBagConstraints.insets = new java.awt.Insets(2, 4, 2, 2);
add(targetBgLb, gridBagConstraints);
targetBgColor.setToolTipText(options.getMsg("edit_act_bgColor_tooltip"));
targetBgColor.addPropertyChangeListener(ColorButton.PROP_COLOR, this);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER;
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
gridBagConstraints.insets = new java.awt.Insets(2, 2, 2, 4);
add(targetBgColor, gridBagConstraints);
errorLb.setText(options.getMsg("edit_text_act_errorStyle"));
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST;
gridBagConstraints.insets = new java.awt.Insets(2, 2, 2, 2);
add(errorLb, gridBagConstraints);
errorFgLb.setIcon(new javax.swing.ImageIcon(getClass().getResource("/edu/xtec/resources/icons/fg.gif")));
errorFgLb.setText(":");
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST;
gridBagConstraints.insets = new java.awt.Insets(2, 4, 2, 2);
add(errorFgLb, gridBagConstraints);
errorFgColor.setToolTipText(options.getMsg("edit_act_textColor_tooltip"));
errorFgColor.addPropertyChangeListener(ColorButton.PROP_COLOR, this);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
gridBagConstraints.insets = new java.awt.Insets(2, 2, 2, 2);
add(errorFgColor, gridBagConstraints);
errorBgLb.setIcon(new javax.swing.ImageIcon(getClass().getResource("/edu/xtec/resources/icons/bg.gif")));
errorBgLb.setText(":");
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST;
gridBagConstraints.insets = new java.awt.Insets(2, 4, 2, 2);
add(errorBgLb, gridBagConstraints);
errorBgColor.setToolTipText(options.getMsg("edit_act_bgColor_tooltip"));
errorBgColor.addPropertyChangeListener(ColorButton.PROP_COLOR, this);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER;
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
gridBagConstraints.insets = new java.awt.Insets(2, 2, 2, 4);
add(errorBgColor, gridBagConstraints);
previewFrame.setLayout(new java.awt.BorderLayout());
previewFrame.setBorder(new javax.swing.border.TitledBorder(options.getMsg("edit_text_act_preview")));
previewScroll.setPreferredSize(new java.awt.Dimension(300, 100));
previewPanel.setEditable(false);
previewScroll.setViewportView(previewPanel);
previewFrame.add(previewScroll, java.awt.BorderLayout.CENTER);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER;
gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
gridBagConstraints.insets = new java.awt.Insets(2, 2, 2, 2);
add(previewFrame, gridBagConstraints);
}//GEN-END:initComponents
private static StyleContext getEmptySc(){
if(emptySc==null){
emptySc=new StyleContext();
TextActivityDocument.checkStyleContext(emptySc);
}
return emptySc;
}
public final void setStyleContext(StyleContext styleContext){
sc = (styleContext==null ? getEmptySc() : styleContext);
TextActivityDocument.checkStyleContext(sc);
Style defaultStyle=sc.getStyle(StyleContext.DEFAULT_STYLE);
fontFaceCombo.setSelectedItem(StyleConstants.getFontFamily(defaultStyle));
fontSizeCombo.setSelectedItem(Integer.toString(StyleConstants.getFontSize(defaultStyle)));
boldBtn.setSelected(StyleConstants.isBold(defaultStyle));
italicBtn.setSelected(StyleConstants.isItalic(defaultStyle));
underlineBtn.setSelected(StyleConstants.isUnderline(defaultStyle));
bgColorBtn.setColor(StyleConstants.getBackground(defaultStyle));
textColorBtn.setColor(StyleConstants.getForeground(defaultStyle));
int tabSpc=TextActivityDocument.DEFAULT_TAB;
Object o=defaultStyle.getAttribute(TextActivityDocument.TABSPC);
if(o!=null){
try{
tabSpc=Math.max(1, Math.min(Integer.parseInt(o.toString()), 50));
} catch(Exception ex){
// ???
}
}
tabSlider.setValue(tabSpc);
Style targetStyle=sc.getStyle(TextActivityDocument.TARGET);
targetBgColor.setColor(StyleConstants.getBackground(targetStyle));
targetFgColor.setColor(StyleConstants.getForeground(targetStyle));
Style errorStyle=sc.getStyle(TextActivityDocument.TARGET_ERROR);
errorBgColor.setColor(StyleConstants.getBackground(errorStyle));
errorFgColor.setColor(StyleConstants.getForeground(errorStyle));
updatePreview(null);
}
public StyleContext getStyleContext(java.util.EventObject evt){
Object src=(evt==null ? null : evt.getSource());
Style defaultStyle=sc.getStyle(StyleContext.DEFAULT_STYLE);
if(src==null || src==fontFaceCombo){
String fontFace=(String)fontFaceCombo.getSelectedItem();
if(fontFace!=null && fontFace.length()>0 && !fontFace.equals(StyleConstants.getFontFamily(defaultStyle)))
StyleConstants.setFontFamily(defaultStyle, fontFace);
}
if(src==null || src==fontSizeCombo){
String fontSize=(String)fontSizeCombo.getSelectedItem();
if(fontSize!=null && fontSize.length()>0){
try{
int fs=Integer.parseInt(fontSize);
if(fs!=StyleConstants.getFontSize(defaultStyle))
StyleConstants.setFontSize(defaultStyle, fs);
} catch(Exception ex){
// ignore
}
}
}
if(src==null || src==boldBtn){
boolean bold=boldBtn.isSelected();
if(bold!=StyleConstants.isBold(defaultStyle))
StyleConstants.setBold(defaultStyle, bold);
}
if(src==null || src==italicBtn){
boolean italic=italicBtn.isSelected();
if(italic!=StyleConstants.isItalic(defaultStyle))
StyleConstants.setItalic(defaultStyle, italic);
}
if(src==null || src==underlineBtn){
boolean underline=underlineBtn.isSelected();
if(underline!=StyleConstants.isUnderline(defaultStyle))
StyleConstants.setUnderline(defaultStyle, underline);
}
if(src==null || src==bgColorBtn){
Color c=bgColorBtn.getColor();
if(!c.equals(StyleConstants.getBackground(defaultStyle)))
StyleConstants.setBackground(defaultStyle, c);
}
if(src==null || src==textColorBtn){
Color c=textColorBtn.getColor();
if(!c.equals(StyleConstants.getForeground(defaultStyle)))
StyleConstants.setForeground(defaultStyle, c);
}
if(src==null || src==tabSlider){
String tabSpc=Integer.toString(Math.max(1, tabSlider.getValue()));
if(!tabSpc.equals(defaultStyle.getAttribute(TextActivityDocument.TABSPC))){
defaultStyle.removeAttribute(TextActivityDocument.TABSPC);
defaultStyle.addAttribute(TextActivityDocument.TABSPC, tabSpc);
}
}
Style targetStyle=sc.getStyle(TextActivityDocument.TARGET);
if(src==null || src==targetFgColor){
Color c=targetFgColor.getColor();
if(!c.equals(StyleConstants.getForeground(targetStyle)))
StyleConstants.setForeground(targetStyle, c);
}
if(src==null || src==targetBgColor){
Color c=targetBgColor.getColor();
if(!c.equals(StyleConstants.getBackground(targetStyle)))
StyleConstants.setBackground(targetStyle, c);
}
Style errorStyle=sc.getStyle(TextActivityDocument.TARGET_ERROR);
if(src==null || src==errorFgColor){
Color c=errorFgColor.getColor();
if(!c.equals(StyleConstants.getForeground(errorStyle)))
StyleConstants.setForeground(errorStyle, c);
}
if(src==null || src==errorBgColor){
Color c=errorBgColor.getColor();
if(!c.equals(StyleConstants.getBackground(errorStyle)))
StyleConstants.setBackground(errorStyle, c);
}
return sc;
}
public void actionPerformed(java.awt.event.ActionEvent evt) {
updatePreview(evt);
}
public void propertyChange(java.beans.PropertyChangeEvent evt) {
updatePreview(evt);
}
public void stateChanged(javax.swing.event.ChangeEvent evt) {
if(evt!=null && evt.getSource()==tabSlider && !tabSlider.getValueIsAdjusting())
updatePreview(evt);
}
private void updatePreview(java.util.EventObject evt){
if(evt!=null)
getStyleContext(evt);
try{
Style defaultStyle=sc.getStyle(StyleContext.DEFAULT_STYLE);
DefaultStyledDocument dsd;
dsd=new DefaultStyledDocument((StyleContext)StreamIO.cloneObject(sc));
Object tabObj=defaultStyle.getAttribute(TextActivityDocument.TABSPC);
if(tabObj!=null){
int tabSpc=Math.max(1, Integer.parseInt(tabObj.toString()));
TextActivityDocument.setStyledDocumentTabSpc(tabSpc, dsd, sc);
}
StringBuilder sb=new StringBuilder();
for(int i=0; i<5; i++)
sb.append("T").append(i).append("\t");
dsd.insertString(0, sb.append("\n").toString(), defaultStyle);
for(int i=0; i<2; i++){
sb.setLength(0);
sb.append(options.getMsg("edit_text_act_styleSample_default_start")).append(" ");
dsd.insertString(dsd.getLength(), sb.toString(), defaultStyle);
sb.setLength(0);
sb.append(options.getMsg("edit_text_act_styleSample_target"));
dsd.insertString(dsd.getLength(), sb.toString(), sc.getStyle(TextActivityDocument.TARGET));
sb.setLength(0);
sb.append(" ").append(options.getMsg("edit_text_act_styleSample_default_fill")).append(" ");
dsd.insertString(dsd.getLength(), sb.toString(), defaultStyle);
sb.setLength(0);
sb.append(options.getMsg("edit_text_act_styleSample_error"));
dsd.insertString(dsd.getLength(), sb.toString(), sc.getStyle(TextActivityDocument.TARGET_ERROR));
sb.setLength(0);
sb.append(" ").append(options.getMsg("edit_text_act_styleSample_default_end")).append("\n");
dsd.insertString(dsd.getLength(), sb.toString(), defaultStyle);
}
previewPanel.setStyledDocument(dsd);
previewPanel.setBackground(StyleConstants.getBackground(defaultStyle));
} catch(Exception ex){
System.err.println("Internal error:\n"+ex);
}
}
// Variables declaration - do not modify//GEN-BEGIN:variables
private edu.xtec.jclic.beans.ColorButton bgColorBtn;
private javax.swing.JToggleButton boldBtn;
private edu.xtec.jclic.beans.ColorButton errorBgColor;
private edu.xtec.jclic.beans.ColorButton errorFgColor;
private javax.swing.JComboBox fontFaceCombo;
private javax.swing.JComboBox fontSizeCombo;
private javax.swing.JToggleButton italicBtn;
private javax.swing.JTextPane previewPanel;
private javax.swing.JSlider tabSlider;
private edu.xtec.jclic.beans.ColorButton targetBgColor;
private edu.xtec.jclic.beans.ColorButton targetFgColor;
private edu.xtec.jclic.beans.ColorButton textColorBtn;
private javax.swing.JToggleButton underlineBtn;
// End of variables declaration//GEN-END:variables
private static Map<Options, TextStyleEditorPanel> panels=new HashMap<Options, TextStyleEditorPanel>(1);
public static StyleContext editStyleContext(Options options, StyleContext sc, Component parent){
StyleContext result=null;
StyleContext clon=null;
if(sc!=null){
try{
clon=(StyleContext)StreamIO.cloneObject(sc);
} catch(Exception ex){
System.err.println("Internal error: cannot clone object: "+sc+"\n"+ex);
}
}
TextStyleEditorPanel tsep=panels.get(options);
if(tsep==null){
tsep=new TextStyleEditorPanel(options, clon);
panels.put(options, tsep);
}
else
tsep.setStyleContext(clon);
if(options.getMessages().showInputDlg(parent, tsep, "edit_style_title"))
result=tsep.getStyleContext(null);
//tsep.setStyleContext(getEmptySc());
return result;
}
}