Ignore:
Timestamp:
2012-05-16T13:40:43+12:00 (12 years ago)
Author:
sjm84
Message:

First phase of making GLI format editor properly indented

File:
1 edited

Legend:

Unmodified
Added
Removed
  • main/trunk/gli/src/org/greenstone/gatherer/cdm/Format4gs3Manager.java

    r25576 r25610  
    3131import javax.swing.event.*;
    3232import javax.swing.undo.*;
     33import javax.xml.parsers.DocumentBuilderFactory;
     34
    3335import org.greenstone.gatherer.Configuration;
    3436import org.greenstone.gatherer.DebugStream;
     
    4446import org.greenstone.gatherer.util.XMLTools;
    4547import org.w3c.dom.*;
     48import org.xml.sax.InputSource;
    4649
    4750import java.awt.FontMetrics;
     
    4952import java.awt.Insets;
    5053import java.awt.Rectangle;
     54import java.io.ByteArrayInputStream;
    5155
    5256/**
     
    234238        //Collections.sort (feature_model);
    235239        return feature_model;
     240    }
     241
     242    private String addSurroundingTags(String xml)
     243    {
     244        return "<ROOTELEMENT>" + xml + "</ROOTELEMENT>";
     245    }
     246
     247    private String removeSurrondingTags(String xml)
     248    {
     249        return xml.replace("<ROOTELEMENT>\n", "").replace("<ROOTELEMENT>", "").replace("</ROOTELEMENT>", "");
    236250    }
    237251
     
    377391            splitPane.add(center_pane, JSplitPane.BOTTOM);
    378392            splitPane.setDividerLocation(150);
    379            
     393
    380394            setBorder(BorderFactory.createEmptyBorder(0, 5, 0, 0));
    381395            setLayout(new BorderLayout());
     
    503517                    if (msg.startsWith(XMLTools.WELLFORMED))
    504518                    {
    505                         format.setPureFormat(Format4gs3.toOneLineFormat(format_str));
     519                        format.setPureFormat(format_str);
    506520                        format.update();
    507521                        format_list_model.refresh(format);
     
    549563                    ///ystem.err.println("There is an existing format!");
    550564                    format_list.setSelectedValue(format, true);
    551                     editor_textarea.setText(format.getPureFormat());
     565                    Element formatElem = null;
     566                    try
     567                    {
     568                        InputSource is = new InputSource(new ByteArrayInputStream(addSurroundingTags(format.getPureFormat()).getBytes("utf-8")));
     569                        formatElem = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(is).getDocumentElement();
     570                    }
     571                    catch (Exception ex)
     572                    {
     573                        ex.printStackTrace();
     574                    }
     575
     576                    if (formatElem != null)
     577                    {
     578                        StringBuffer sb = new StringBuffer();
     579                        XMLTools.xmlNodeToString(sb, formatElem, true, "  ", 0);
     580                        editor_textarea.setText(removeSurrondingTags(sb.toString()));
     581                    }
     582                    else
     583                    {
     584                        editor_textarea.setText(format.getPureFormat());
     585                    }
    552586                    editor_textarea.setCaretPosition(0);
    553587
     
    614648                        existingFormat(format.getFeatureName().startsWith(Classifier.CLASSIFIER_PREFIX));
    615649
    616                         editor_textarea.setText(format.getPureFormat());
     650                        Element formatElem = null;
     651                        try
     652                        {
     653                            InputSource is = new InputSource(new ByteArrayInputStream(addSurroundingTags(format.getPureFormat()).getBytes("utf-8")));
     654                            formatElem = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(is).getDocumentElement();
     655                        }
     656                        catch (Exception ex)
     657                        {
     658                            ex.printStackTrace();
     659                        }
     660
     661                        if (formatElem != null)
     662                        {
     663                            StringBuffer sb = new StringBuffer();
     664                            XMLTools.xmlNodeToString(sb, formatElem, true, "  ", 0);
     665                            editor_textarea.setText(removeSurrondingTags(sb.toString()));
     666                        }
     667                        else
     668                        {
     669                            editor_textarea.setText(format.getPureFormat());
     670                        }
    617671                        editor_textarea.setCaretPosition(0);
    618672
Note: See TracChangeset for help on using the changeset viewer.