How to prevent JTextPane from inserting newline on setText(longLine)

Hi all, I have seen some posts (referenced below) regarding
JTextPane and turning off line wrap. I tried these but still
have some unwanted behavior.
If I insert long html content that has no CRs in it into a JTextPane,
using setText(...)
and then immediatly call getText()
I get back my html content with CRs in it.
how can I prevent this????
In the code below, I insert a long line (html), then call getText()
and JTextPane has inserted a CR after the ffff
visually , in the gui, it did not put a line break there, which is great, but
somewhere in the document model it was inserted
I have code that would break if there are newlines in
strange places like that.
I DO want the html markup from the call to JTextPane.getText()
but not with the additional newlines.
import javax.swing.*;
import javax.swing.event.*;
import java.awt.event.*;
import java.awt.*;
import javax.swing.text.html.*;
import javax.swing.text.*;
import javax.swing.border.*;
import java.io.*;
import java.awt.datatransfer.*;
public class MyTextPane extends JTextPane implements MouseListener, ActionListener {
       static final long serialVersionUID = 1;
       private JPopupMenu popupMenu = null;
       private JMenuItem  cutMenuItem = null;
       private JMenuItem  copyMenuItem = null;
       private JMenuItem  pasteMenuItem = null;
       private JMenuItem  clearMenuItem = null;
       //private JMenuItem  selectAllMenuItem = null;
       private int startSelectionPosition = -1;
       private int endSelectionPosition = -1;
       private boolean bTopSeperatorInserted = false;
       private int topMenuItemInsertionIndex = 0;
       public MyTextPane() {
         super();
         init();
       private void init() {
         addMouseListener(this);
         java.awt.Font font = new java.awt.Font("Dialog", java.awt.Font.PLAIN, 14);
         setFont(font);
         createAndConfigurePopupMenu();
         startNewDocument();
         A FocusListener is also added to our editor. The two methods of this listener, focusGained() and
         focusLost(), will be invoked when the editor gains and loses the focus respectively. The purpose of
         this implementation is to save and restore the starting and end positions of the text selection.
         The reason? -> Swing supports only one text selection at any given time. This means
         that if the user selects some text in the editor component to modify it's attributes, and then goes
         off and makes a text selection in some other component, the original text selection will disappear.
         This can potentially be very annoying to the user. To fix this problem I'll save the selection before
         the editor component loses the focus. When the focus is gained we restore the previously saved selection.
         I'll distinguish between two possible situations: when the caret is located at the beginning of the
         selection and when it is located at the end of the selection. In the first case, position the
         caret at the end of the stored interval with the setCaretPosition() method, and then move the
         caret backward to the beginning of the stored interval with the moveCaretPosition() method.
         The second situation is easily handled using the select() method.
         FocusListener focusListener = new FocusListener() {
           public void focusGained(FocusEvent e) {
             int len = getDocument().getLength();
             if (startSelectionPosition>=0 &&
                 endSelectionPosition>=0 &&
                 startSelectionPosition<len &&
                 endSelectionPosition<len)
               if (getCaretPosition() == startSelectionPosition) {
                 setCaretPosition(endSelectionPosition);
                 moveCaretPosition(startSelectionPosition);
               else
                 select(startSelectionPosition, endSelectionPosition);
           public void focusLost(FocusEvent e) {
             startSelectionPosition = getSelectionStart();
             endSelectionPosition = getSelectionEnd();
         addFocusListener(focusListener);
         // CONTROL+ALT+S to view HTML source and change it
         Action viewSourceAction = new ViewSourceAction();
         getActionMap().put("viewSourceAction", viewSourceAction);
         InputMap inputMap = getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT);
         KeyStroke keyStroke = KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_S,
                                                 InputEvent.CTRL_MASK+InputEvent.ALT_MASK);
         inputMap.put(keyStroke, "viewSourceAction");
       // if a merge tag is at the end of a long line, JTextPane
       // inserts CR/LF into the middle of the merge tag, like this
       // "this is a really long line and at the end is a merge tag <merge \r\n name="Case ID"/>"
       // We need to turn off line wrapping to prevent this.
       // see http://forum.java.sun.com/thread.jspa?forumID=57&threadID=326017
       // overriding setSize(..) and getScrollableTracksViewportWidth()
       public void setSize(Dimension d)
           if (d.width < getParent().getSize().width)
               d.width = getParent().getSize().width;
           super.setSize(d);
       public boolean getScrollableTracksViewportWidth() { return false; }
       class ViewSourceAction extends AbstractAction
         public void actionPerformed(ActionEvent e)
           try {
             HTMLEditorKit m_kit = (HTMLEditorKit)MyTextPane.this.getEditorKit();
             HTMLDocument m_doc = (HTMLDocument)MyTextPane.this.getDocument();
             StringWriter sw = new StringWriter();
             m_kit.write(sw, m_doc, 0, m_doc.getLength());
             sw.close();
             HtmlSourceDlg dlg = new HtmlSourceDlg(null, sw.toString());
             dlg.setVisible(true);
             if (!dlg.succeeded())
               return;
             StringReader sr = new StringReader(dlg.getSource());
             m_doc = createDocument();
             m_kit.read(sr, m_doc, 0);
             sr.close();
             setDocument(m_doc);
           catch (Exception ex) {
             ex.printStackTrace();
       private HTMLDocument createDocument() {
         HTMLEditorKit htmlEditorKit = new HTMLEditorKit();
         StyleSheet styles = htmlEditorKit.getStyleSheet();
         StyleSheet ss = new StyleSheet();
         ss.addStyleSheet(styles);
         HTMLDocument doc = new HTMLDocument(ss);
         //doc.setParser(htmlEditorKit.getParser());
         //doc.setAsynchronousLoadPriority(4);
         //doc.setTokenThreshold(100);
         return doc;
       public Element getElementByTag(HTML.Tag tag) {
         HTMLDocument htmlDocument = (HTMLDocument)getDocument();
         Element root = htmlDocument.getDefaultRootElement();
         return getElementByTag(root, tag);
       public Element getElementByTag(Element parent, HTML.Tag tag) {
         if (parent == null || tag == null)
           return null;
         for (int k=0; k<parent.getElementCount(); k++) {
           Element child = parent.getElement(k);
           if (child.getAttributes().getAttribute(
               StyleConstants.NameAttribute).equals(tag))
             return child;
           Element e = getElementByTag(child, tag);
           if (e != null)
             return e;
         return null;
       public void mouseClicked(MouseEvent e){}
       public void mouseEntered(MouseEvent e){}
       public void mouseExited(MouseEvent e){}
       public void mouseReleased(MouseEvent e){}
       public void mousePressed(MouseEvent e)
         if (e.getModifiers() == MouseEvent.BUTTON3_MASK)
           Clipboard cb = Toolkit.getDefaultToolkit().getSystemClipboard();
           if (cb.getContents(this) == null || !isEditable() || !isEnabled()) {
             pasteMenuItem.setEnabled(false);
           } else {
             pasteMenuItem.setEnabled(true);
           if (getSelectedText() == null) {
             copyMenuItem.setEnabled(false);
             cutMenuItem.setEnabled(false);
           } else {
             copyMenuItem.setEnabled(true);
             if ((getBorder() == null) || !isEditable() || !isEnabled()) {
               cutMenuItem.setEnabled(false);
             } else {
               cutMenuItem.setEnabled(true);
           popupMenu.show(this,e.getX(),e.getY());
       public JPopupMenu getPopupMenu() { return popupMenu; }
        * Creates the Popup menu with Cut,Copy,Paste
        * menu items if it hasn't already been created.
       private void createAndConfigurePopupMenu() {
         popupMenu = new JPopupMenu();
         clearMenuItem = new JMenuItem(new ClearAction());
         clearMenuItem.setText("Clear");
         //selectAllMenuItem = new JMenuItem(new SelectAllAction());
         //selectAllMenuItem.setText("Select All");
         cutMenuItem = new JMenuItem(new DefaultEditorKit.CutAction());
         cutMenuItem.setText("Cut");
         copyMenuItem = new JMenuItem(new DefaultEditorKit.CopyAction());
         copyMenuItem.setText("Copy");
         // when pasting, only paste the plain text (not any markup)
         PasteAction pasteAction = new PasteAction();
         pasteMenuItem = new JMenuItem(/*new DefaultEditorKit.PasteAction()*/);
         pasteMenuItem.addActionListener(pasteAction);
         pasteMenuItem.setText("Paste");
         popupMenu.add(cutMenuItem);
         popupMenu.add(copyMenuItem);
         popupMenu.add(pasteMenuItem);
         popupMenu.add(new JPopupMenu.Separator());
         popupMenu.add(clearMenuItem);
         //popupMenu.add(selectAllMenuItem);
         setKeyStrokes();
       private void doPasteAction()
           Clipboard cb = Toolkit.getDefaultToolkit().getSystemClipboard();
           Transferable content = cb.getContents(this);
           try {
               // when pasting, discard the markup
               String s = (String)content.getTransferData(DataFlavor.stringFlavor);
               HTMLDocument doc = (HTMLDocument)MyTextPane.this.getDocument();
               HTMLEditorKit kit = (HTMLEditorKit)MyTextPane.this.getEditorKit();
               doc.insertString(MyTextPane.this.getCaretPosition(),
                                s,
                                kit.getInputAttributes());
           catch (Throwable exc) {
               exc.printStackTrace();
       class PasteAction implements ActionListener
           public void actionPerformed(ActionEvent e) {
               doPasteAction();
        * Sets the short cut keys and actions for corresponding actions for keys.
       private void setKeyStrokes() {
           KeyStroke paste = KeyStroke.getKeyStroke(KeyEvent.VK_V,
                                                    KeyEvent.CTRL_MASK);
           /** Performs pasteAction when short-cut key paste action is performed */
           Action pasteAction = new AbstractAction() {
                * Handles user clicked actions.
                * @param actionEvent -
                *            ActionEvent object.
               public void actionPerformed(ActionEvent actionEvent) {
                   doPasteAction();
           InputMap inputMap = getInputMap(JTextPane.WHEN_FOCUSED);
           getActionMap().put(inputMap.get(paste), pasteAction);
       public void actionPerformed(ActionEvent e) {
          if(e.getActionCommand().equals("Select All"))
            selectAll();
          else if(e.getActionCommand().equals("Clear"))
            clear();
       public void append(String s) {
         super.setText( getText() + s );
       public void clear() {
         startNewDocument();
       public void startNewDocument() {
         HTMLEditorKit editorKit = new HTMLEditorKit();
         setContentType("text/html");
         setEditorKit(editorKit);
         HTMLDocument document = (HTMLDocument) editorKit.createDefaultDocument();
         setDocument(document);
         // to enable the copy and paste from ms word (and others) to the JTextPane, set
         // this client property. Sun Bug ID: 4765240
         document.putProperty("IgnoreCharsetDirective",Boolean.TRUE);
         document.setPreservesUnknownTags(false);
       class ClearAction extends AbstractAction{
         public void actionPerformed(ActionEvent e) {
           startNewDocument();
       class SelectAllAction extends AbstractAction{
         public void actionPerformed(ActionEvent e) {
           selectAll();
       class HtmlSourceDlg extends JDialog {
         protected boolean m_succeeded = false;
         protected JTextArea m_sourceTxt;
         public HtmlSourceDlg(JFrame parent, String source) {
           super(parent, "HTML Source", true);
           JPanel pp = new JPanel(new BorderLayout());
           pp.setBorder(new EmptyBorder(10, 10, 5, 10));
           m_sourceTxt = new JTextArea(source, 20, 60);
           m_sourceTxt.setFont(new Font("Courier", Font.PLAIN, 12));
           JScrollPane sp = new JScrollPane(m_sourceTxt);
           pp.add(sp, BorderLayout.CENTER);
           JPanel p = new JPanel(new FlowLayout());
           JPanel p1 = new JPanel(new GridLayout(1, 2, 10, 0));
           JButton bt = new JButton("Save");
           ActionListener lst = new ActionListener() {
             public void actionPerformed(ActionEvent e) {
               m_succeeded = true;
               dispose();
           bt.addActionListener(lst);
           p1.add(bt);
           bt = new JButton("Cancel");
           lst = new ActionListener() {
             public void actionPerformed(ActionEvent e) {
               dispose();
           bt.addActionListener(lst);
           p1.add(bt);
           p.add(p1);
           pp.add(p, BorderLayout.SOUTH);
           getContentPane().add(pp, BorderLayout.CENTER);
           pack();
           setResizable(true);
           setLocationRelativeTo(parent);
         public boolean succeeded() {
           return m_succeeded;
         public String getSource() {
           return m_sourceTxt.getText();
       public void addToPopupMenuAboveEditItems(JMenuItem menuItem)
         if (!bTopSeperatorInserted) {
           popupMenu.insert(new JPopupMenu.Separator(), 0);
           bTopSeperatorInserted = true;
         popupMenu.insert(menuItem, topMenuItemInsertionIndex);
         ++topMenuItemInsertionIndex;
       public static void main(String args[])
         JFrame frame = new JFrame("MyTextPane");
         MyTextPane textPane = new MyTextPane();
         frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
         JScrollPane scrollPane = new JScrollPane(textPane);        
         String s = "<p>aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa bbbb cccc dddd eeee ffff gggg hhhh iiii jjjj aaaaaaaaaaaaaaaaaaaaaaa</p>";        
         System.out.println("\nthe long string prior to calling JTextPane.setText(..) WITH NO NEWLINES\ns=" +s);
         textPane.setText(s);
         System.out.println("\n\nthe text returned from calling JTextPane.setText(..) -> it inserted CR & newline after the ffff\n");
         System.out.println("textPane.getText()=" +textPane.getText());
         frame.getContentPane().add(scrollPane,BorderLayout.CENTER);
         frame.setSize(500, 700);
         frame.setVisible(true);
     }http://forum.java.sun.com/thread.jspa?threadID=356749&messageID=3012080
and
http://forum.java.sun.com/thread.jspa?forumID=57&threadID=326017
Edited by: henryhamster on Sep 13, 2007 8:59 PM

ok, I found a somewhat work around. calling JTextPane.getText() eventually
invokes HTMLEditorKit.write()
which does code
HTMLWriter w = new HTMLWriter(out, (HTMLDocument)doc, pos, len);
w.write();the HTMLWriter() constructor above makes this call
setLineLength(80);
So If I extend some classes (JEditorKit and HTMLWriter) I can call invoke
htmlWriter.setLineLength(1000); // ridiculous length to prevent insertion of CR/LF
here is the hack, can someone please tell
me there is an easier way. :-)
import javax.swing.*;
import javax.swing.event.*;
import java.awt.event.*;
import java.awt.*;
import javax.swing.text.html.*;
import javax.swing.text.*;
import javax.swing.border.*;
import java.io.*;
import java.awt.datatransfer.*;
public class MyTextPane extends JTextPane implements MouseListener,
          ActionListener {
     static final long serialVersionUID = 1;
     private JPopupMenu popupMenu = null;
     private JMenuItem cutMenuItem = null;
     private JMenuItem copyMenuItem = null;
     private JMenuItem pasteMenuItem = null;
     private JMenuItem clearMenuItem = null;
     // private JMenuItem selectAllMenuItem = null;
     private int startSelectionPosition = -1;
     private int endSelectionPosition = -1;
     private boolean bTopSeperatorInserted = false;
     private int topMenuItemInsertionIndex = 0;
     public MyTextPane() {
          super();
          init();
     private void init() {
          addMouseListener(this);
          java.awt.Font font = new java.awt.Font("Dialog", java.awt.Font.PLAIN,
                    14);
          setFont(font);
          createAndConfigurePopupMenu();
          startNewDocument();
           * A FocusListener is also added to our editor. The two methods of this
           * listener, focusGained() and focusLost(), will be invoked when the
           * editor gains and loses the focus respectively. The purpose of this
           * implementation is to save and restore the starting and end positions
           * of the text selection. The reason? -> Swing supports only one text
           * selection at any given time. This means that if the user selects some
           * text in the editor component to modify it's attributes, and then goes
           * off and makes a text selection in some other component, the original
           * text selection will disappear. This can potentially be very annoying
           * to the user. To fix this problem I'll save the selection before the
           * editor component loses the focus. When the focus is gained we restore
           * the previously saved selection. I'll distinguish between two possible
           * situations: when the caret is located at the beginning of the
           * selection and when it is located at the end of the selection. In the
           * first case, position the caret at the end of the stored interval with
           * the setCaretPosition() method, and then move the caret backward to
           * the beginning of the stored interval with the moveCaretPosition()
           * method. The second situation is easily handled using the select()
           * method.
          FocusListener focusListener = new FocusListener() {
               public void focusGained(FocusEvent e) {
                    int len = getDocument().getLength();
                    if (startSelectionPosition >= 0 && endSelectionPosition >= 0
                              && startSelectionPosition < len
                              && endSelectionPosition < len) {
                         if (getCaretPosition() == startSelectionPosition) {
                              setCaretPosition(endSelectionPosition);
                              moveCaretPosition(startSelectionPosition);
                         } else
                              select(startSelectionPosition, endSelectionPosition);
               public void focusLost(FocusEvent e) {
                    startSelectionPosition = getSelectionStart();
                    endSelectionPosition = getSelectionEnd();
          addFocusListener(focusListener);
          // CONTROL+ALT+S to view HTML source and change it
          Action viewSourceAction = new ViewSourceAction();
          getActionMap().put("viewSourceAction", viewSourceAction);
          InputMap inputMap = getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT);
          KeyStroke keyStroke = KeyStroke.getKeyStroke(
                    java.awt.event.KeyEvent.VK_S, InputEvent.CTRL_MASK
                              + InputEvent.ALT_MASK);
          inputMap.put(keyStroke, "viewSourceAction");
     // if a merge tag is at the end of a long line, JTextPane
     // inserts CR/LF into the middle of the merge tag, like this
     // "this is a really long line and at the end is a merge tag <merge \r\n
     // name="Case ID"/>"
     // We need to turn off line wrapping to prevent this.
     // see http://forum.java.sun.com/thread.jspa?forumID=57&threadID=326017
     // overriding setSize(..) and getScrollableTracksViewportWidth()
     public void setSize(Dimension d) {
          if (d.width < getParent().getSize().width)
               d.width = getParent().getSize().width;
          super.setSize(d);
     public boolean getScrollableTracksViewportWidth() {
          return false;
     class ViewSourceAction extends AbstractAction {
          public void actionPerformed(ActionEvent e) {
               try {
                    HTMLEditorKit m_kit = (HTMLEditorKit) MyTextPane.this
                              .getEditorKit();
                    HTMLDocument m_doc = (HTMLDocument) MyTextPane.this
                              .getDocument();
                    StringWriter sw = new StringWriter();
                    m_kit.write(sw, m_doc, 0, m_doc.getLength());
                    sw.close();
                    HtmlSourceDlg dlg = new HtmlSourceDlg(null, sw.toString());
                    dlg.setVisible(true);
                    if (!dlg.succeeded())
                         return;
                    StringReader sr = new StringReader(dlg.getSource());
                    m_doc = createDocument();
                    m_kit.read(sr, m_doc, 0);
                    sr.close();
                    setDocument(m_doc);
               } catch (Exception ex) {
                    ex.printStackTrace();
     private HTMLDocument createDocument() {
          HTMLEditorKit htmlEditorKit = new HTMLEditorKit();
          StyleSheet styles = htmlEditorKit.getStyleSheet();
          StyleSheet ss = new StyleSheet();
          ss.addStyleSheet(styles);
          HTMLDocument doc = new HTMLDocument(ss);
          // doc.setParser(htmlEditorKit.getParser());
          // doc.setAsynchronousLoadPriority(4);
          // doc.setTokenThreshold(100);
          return doc;
     public Element getElementByTag(HTML.Tag tag) {
          HTMLDocument htmlDocument = (HTMLDocument) getDocument();
          Element root = htmlDocument.getDefaultRootElement();
          return getElementByTag(root, tag);
     public Element getElementByTag(Element parent, HTML.Tag tag) {
          if (parent == null || tag == null)
               return null;
          for (int k = 0; k < parent.getElementCount(); k++) {
               Element child = parent.getElement(k);
               if (child.getAttributes()
                         .getAttribute(StyleConstants.NameAttribute).equals(tag))
                    return child;
               Element e = getElementByTag(child, tag);
               if (e != null)
                    return e;
          return null;
     public void mouseClicked(MouseEvent e) {
     public void mouseEntered(MouseEvent e) {
     public void mouseExited(MouseEvent e) {
     public void mouseReleased(MouseEvent e) {
     public void mousePressed(MouseEvent e) {
          if (e.getModifiers() == MouseEvent.BUTTON3_MASK) {
               Clipboard cb = Toolkit.getDefaultToolkit().getSystemClipboard();
               if (cb.getContents(this) == null || !isEditable() || !isEnabled()) {
                    pasteMenuItem.setEnabled(false);
               } else {
                    pasteMenuItem.setEnabled(true);
               if (getSelectedText() == null) {
                    copyMenuItem.setEnabled(false);
                    cutMenuItem.setEnabled(false);
               } else {
                    copyMenuItem.setEnabled(true);
                    if ((getBorder() == null) || !isEditable() || !isEnabled()) {
                         cutMenuItem.setEnabled(false);
                    } else {
                         cutMenuItem.setEnabled(true);
               popupMenu.show(this, e.getX(), e.getY());
     public JPopupMenu getPopupMenu() {
          return popupMenu;
      * Creates the Popup menu with Cut,Copy,Paste menu items if it hasn't
      * already been created.
     private void createAndConfigurePopupMenu() {
          popupMenu = new JPopupMenu();
          clearMenuItem = new JMenuItem(new ClearAction());
          clearMenuItem.setText("Clear");
          // selectAllMenuItem = new JMenuItem(new SelectAllAction());
          // selectAllMenuItem.setText("Select All");
          cutMenuItem = new JMenuItem(new DefaultEditorKit.CutAction());
          cutMenuItem.setText("Cut");
          copyMenuItem = new JMenuItem(new DefaultEditorKit.CopyAction());
          copyMenuItem.setText("Copy");
          // when pasting, only paste the plain text (not any markup)
          PasteAction pasteAction = new PasteAction();
          pasteMenuItem = new JMenuItem(/* new DefaultEditorKit.PasteAction() */);
          pasteMenuItem.addActionListener(pasteAction);
          pasteMenuItem.setText("Paste");
          popupMenu.add(cutMenuItem);
          popupMenu.add(copyMenuItem);
          popupMenu.add(pasteMenuItem);
          popupMenu.add(new JPopupMenu.Separator());
          popupMenu.add(clearMenuItem);
          // popupMenu.add(selectAllMenuItem);
          setKeyStrokes();
     private void doPasteAction() {
          Clipboard cb = Toolkit.getDefaultToolkit().getSystemClipboard();
          Transferable content = cb.getContents(this);
          try {
               // when pasting, discard the markup
               String s = (String) content
                         .getTransferData(DataFlavor.stringFlavor);
               HTMLDocument doc = (HTMLDocument) MyTextPane.this.getDocument();
               HTMLEditorKit kit = (HTMLEditorKit) MyTextPane.this.getEditorKit();
               doc.insertString(MyTextPane.this.getCaretPosition(), s, kit
                         .getInputAttributes());
          } catch (Throwable exc) {
               exc.printStackTrace();
     class PasteAction implements ActionListener {
          public void actionPerformed(ActionEvent e) {
               doPasteAction();
      * Sets the short cut keys and actions for corresponding actions for keys.
     private void setKeyStrokes() {
          KeyStroke paste = KeyStroke.getKeyStroke(KeyEvent.VK_V,
                    KeyEvent.CTRL_MASK);
          /** Performs pasteAction when short-cut key paste action is performed */
          Action pasteAction = new AbstractAction() {
                * Handles user clicked actions.
                * @param actionEvent -
                *            ActionEvent object.
               public void actionPerformed(ActionEvent actionEvent) {
                    doPasteAction();
          InputMap inputMap = getInputMap(JTextPane.WHEN_FOCUSED);
          getActionMap().put(inputMap.get(paste), pasteAction);
     public void actionPerformed(ActionEvent e) {
          if (e.getActionCommand().equals("Select All"))
               selectAll();
          else if (e.getActionCommand().equals("Clear"))
               clear();
     public void append(String s) {
          super.setText(getText() + s);
     public void clear() {
          startNewDocument();
     public void startNewDocument() {
          MyHTMLEditorKit editorKit = new MyHTMLEditorKit();
          setContentType("text/html");
          setEditorKit(editorKit);
          HTMLDocument document = (HTMLDocument) editorKit
                    .createDefaultDocument();
          setDocument(document);
          // to enable the copy and paste from ms word (and others) to the
          // JTextPane, set
          // this client property. Sun Bug ID: 4765240
          document.putProperty("IgnoreCharsetDirective", Boolean.TRUE);
          document.setPreservesUnknownTags(false);
     class ClearAction extends AbstractAction {
          public void actionPerformed(ActionEvent e) {
               startNewDocument();
     class SelectAllAction extends AbstractAction {
          public void actionPerformed(ActionEvent e) {
               selectAll();
     class HtmlSourceDlg extends JDialog {
          protected boolean m_succeeded = false;
          protected JTextArea m_sourceTxt;
          public HtmlSourceDlg(JFrame parent, String source) {
               super(parent, "HTML Source", true);
               JPanel pp = new JPanel(new BorderLayout());
               pp.setBorder(new EmptyBorder(10, 10, 5, 10));
               m_sourceTxt = new JTextArea(source, 20, 60);
               m_sourceTxt.setFont(new Font("Courier", Font.PLAIN, 12));
               JScrollPane sp = new JScrollPane(m_sourceTxt);
               pp.add(sp, BorderLayout.CENTER);
               JPanel p = new JPanel(new FlowLayout());
               JPanel p1 = new JPanel(new GridLayout(1, 2, 10, 0));
               JButton bt = new JButton("Save");
               ActionListener lst = new ActionListener() {
                    public void actionPerformed(ActionEvent e) {
                         m_succeeded = true;
                         dispose();
               bt.addActionListener(lst);
               p1.add(bt);
               bt = new JButton("Cancel");
               lst = new ActionListener() {
                    public void actionPerformed(ActionEvent e) {
                         dispose();
               bt.addActionListener(lst);
               p1.add(bt);
               p.add(p1);
               pp.add(p, BorderLayout.SOUTH);
               getContentPane().add(pp, BorderLayout.CENTER);
               pack();
               setResizable(true);
               setLocationRelativeTo(parent);
          public boolean succeeded() {
               return m_succeeded;
          public String getSource() {
               return m_sourceTxt.getText();
     public void addToPopupMenuAboveEditItems(JMenuItem menuItem) {
          if (!bTopSeperatorInserted) {
               popupMenu.insert(new JPopupMenu.Separator(), 0);
               bTopSeperatorInserted = true;
          popupMenu.insert(menuItem, topMenuItemInsertionIndex);
          ++topMenuItemInsertionIndex;
     public static void main(String args[]) {
          JFrame frame = new JFrame("MyTextPane");
          MyTextPane textPane = new MyTextPane();
          HTMLDocument doc = (HTMLDocument) textPane.getDocument();
          HTMLEditorKit kit = (HTMLEditorKit) textPane.getEditorKit();
          StringWriter buf = new StringWriter();
          // MyHTMLWriter w = new MyHTMLWriter(buf, (HTMLDocument) doc, 0,
          // doc.getLength());
          // w.setLineLength(150);
          frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
          JScrollPane scrollPane = new JScrollPane(textPane);
          String s = "<p>aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa bbbb cccc dddd eeee ffff gggg hhhh iiii jjjj aaaaaaaaaaaaaaaaaaaaaaa</p>";
          System.out
                    .println("\nthe long string prior to calling JTextPane.setText(..) WITH NO NEWLINES\ns="
                              + s);
          textPane.setText(s);
          String sOut = textPane.getText();
          System.out
                    .println("\n\nthe text returned from calling JTextPane.setText(..) -> it inserted CR & newline after the ffff\n");
          System.out.println("textPane.getText()=" + sOut);
          frame.getContentPane().add(scrollPane, BorderLayout.CENTER);
          frame.setSize(500, 700);
          frame.setVisible(true);
class MyHTMLWriter extends HTMLWriter {
     public MyHTMLWriter(Writer buf, HTMLDocument doc, int pos, int len) {
          super(buf, doc, pos, len);
     protected void setLineLength(int l) {
          super.setLineLength(l);
class MyHTMLEditorKit extends HTMLEditorKit {
     public void write(Writer out, Document doc, int pos, int len)
               throws IOException, BadLocationException {
          if (doc instanceof HTMLDocument) {
               MyHTMLWriter w = new MyHTMLWriter(out, (HTMLDocument) doc, pos, len);
               w.setLineLength(200);
               w.write();
          } else if (doc instanceof StyledDocument) {
               MinimalHTMLWriter w = new MinimalHTMLWriter(out,
                         (StyledDocument) doc, pos, len);
               w.write();
          } else {
               super.write(out, doc, pos, len);
}and

Similar Messages

  • How to prevent apps from syncing in the new version of itunes?

    Hey there.
    I brang my macbook to Applestore cause it had a problem and they downloaded the latest version of itunes. Everything's fine and my music, videos and apps are in the new itunes like before. But now, when I want to sync my iphone, a pop window asks me to give the password of the itunes account I used to download some of my apps or it will delete them and their data. The problem is that one of these accounts is an old friend's one and I actually lost all contact with him. So basically now I can't sync my iphone at all or it will delete all my apps.
    Has anyone any idea how to sort that out? Or at least knows how to prevent apps from syncing in this new version of itunes?
    Thanks for your help

    Onthe top menu
    View > Show Status Bar.
    The grey bar will now appear at the bottom with the info you want

  • How to prevent Oracle from using an index when joining two tables ...

    How to prevent Oracle from using an index when joining two tables to get an inline view which is used in an update statement?
    O.K. I think I have to explain what I mean:
    When joining two tables which have many entries sometimes it es better not to use an index on the column used as join criteria.
    I have two tables: table A and table B.
    Table A has 4.000.000 entries and table B has 700.000 entries.
    I have a join of both tables with a numeric column as join criteria.
    There is an index on this column in table A.
    So I instead of
      where (A.col = B.col)I want to use
      where (A.col+0 = B.col)in order to prevent Oracle from using the index.
    When I use the join in a select statement it works.
    But when I use the join as inline view in an update statement I get the error ORA-01779.
    When I remove the "+0" the update statement works. (The column col is unique in table B).
    Any ideas why this happens?
    Thank you very much in advance for any help.
    Regards Hartmut

    I think you should post an properly formatted explain plan output using DBMS_XPLAN.DISPLAY including the "Predicate Information" section below the plan to provide more details regarding your query resp. update statement. Please use the \[code\] and \[code\] tags to enhance readability of the output provided:
    In SQL*Plus:
    SET LINESIZE 130
    EXPLAIN PLAN FOR <your statement>;
    SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY);Usually if you're using the CBO (cost based optimizer) and have reasonable statistics gathered on the database objects used the optimizer should be able to determine if it is better to use the existing index or not.
    Things look different if you don't have statistics, you have outdated/wrong statistics or deliberately still use the RBO (rule based optimizer). In this case you would have to use other means to prevent the index usage, the most obvious would be the already mentioned NO_INDEX or FULL hint.
    But I strongly recommend to check in first place why the optimizer apparently seems to choose an inappropriate index access path.
    Regards,
    Randolf
    Oracle related stuff:
    http://oracle-randolf.blogspot.com/
    SQLTools++ for Oracle:
    http://www.sqltools-plusplus.org:7676/
    http://sourceforge.net/projects/sqlt-pp/

  • How to prevent users from creating new folders in share folder directory?

    Hello guys
    I'd like to know How to prevent users from creating new folders in share folder directory but still keep their power of creating new folders in their personal 'my folder'?
    I tried changing the 'manage privilage ---- create folder' to deny certain user accounts, but by doing so, it also stops the user from creating new folders in their 'my folder', which is not good..
    I also tried going into these share folders and tried different access types such as 'change/delete', 'read', 'traverse folder' etc, but none of it work ideally. The 'change/delete' access still allows them to create new folders, 'read' access prevents creating new folders but also take away their power of saving reports..
    Any thoughts on how to take away their ability to ONLY create new folders in share folder areas without affecting their other privileges?
    Please advise
    Thank you

    Easy, on the shared folders root folder only give them 'read' or 'traverse folder' but on the the folder inside the shared folders root folder give them 'change/delete'. That means they can change anything inside those folders but not create any folders at the shared folders root level.

  • How to prevent iCloudDrive from waking computer from sleep?

    My PC wakes up periodically from sleep. After the checking the event logs, the logs show that iCloudDrive.exe process is causing the computer to wake up from sleep. I do not want to disable all system wake timers, but I do not know how to prevent iCloudDrive from waking up the computer. The expiration date keeps changing forward.
    in Command Prompt (admin):
    C:\windows\system32>powercfg -waketimers
    Timer set by [PROCESS] \Device\HarddiskVolume3\Program Files (x86)\Common Files\
    Apple\Internet Services\iCloudDrive.exe expires at 5:26:25 PM on 4/21/2015.
    In Event Viewer:
    Log Name:      System
    Source:        Microsoft-Windows-Power-Troubleshooter
    Date:          4/12/2015 3:21:56 PM
    Event ID:      1
    Task Category: None
    Level:         Information
    Keywords:     
    User:          LOCAL SERVICE
    Computer:      WIN-CBF43TVLMNC
    Description:
    The system has returned from a low power state.
    Sleep Time: 2015-04-12T18:24:08.280458300Z
    Wake Time: 2015-04-12T19:21:44.326107700Z
    Wake Source: Timer - iCloudDrive.exe
    Event Xml:
    <Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
      <System>
        <Provider Name="Microsoft-Windows-Power-Troubleshooter" Guid="{CDC05E28-C449-49C6-B9D2-88CF761644DF}" />
        <EventID>1</EventID>
        <Version>2</Version>
        <Level>4</Level>
        <Task>0</Task>
        <Opcode>0</Opcode>
        <Keywords>0x8000000000000000</Keywords>
        <TimeCreated SystemTime="2015-04-12T19:21:56.645016400Z" />
        <EventRecordID>2838</EventRecordID>
        <Correlation ActivityID="{0D44318C-F225-4D0E-AE0B-76736663674D}" />
        <Execution ProcessID="1888" ThreadID="848" />
        <Channel>System</Channel>
        <Computer>WIN-CBF43TVLMNC</Computer>
        <Security UserID="S-1-5-19" />
      </System>
      <EventData>
        <Data Name="SleepTime">2015-04-12T18:24:08.280458300Z</Data>
        <Data Name="WakeTime">2015-04-12T19:21:44.326107700Z</Data>
        <Data Name="SleepDuration">100</Data>
        <Data Name="WakeDuration">826</Data>
        <Data Name="DriverInitDuration">601</Data>
        <Data Name="BiosInitDuration">909</Data>
        <Data Name="HiberWriteDuration">0</Data>
        <Data Name="HiberReadDuration">0</Data>
        <Data Name="HiberPagesWritten">0</Data>
        <Data Name="Attributes">25612</Data>
        <Data Name="TargetState">4</Data>
        <Data Name="EffectiveState">4</Data>
        <Data Name="WakeSourceType">5</Data>
        <Data Name="WakeSourceTextLength">15</Data>
        <Data Name="WakeSourceText">iCloudDrive.exe</Data>
        <Data Name="WakeTimerOwnerLength">96</Data>
        <Data Name="WakeTimerContextLength">0</Data>
        <Data Name="NoMultiStageResumeReason">0</Data>
        <Data Name="WakeTimerOwner">\Device\HarddiskVolume3\Program Files (x86)\Common Files\Apple\Internet Services\iCloudDrive.exe</Data>
        <Data Name="WakeTimerContext">
        </Data>
      </EventData>
    </Event>

    In the Bluetooth System Preferences click the Advanced button, then uncheck the Allow Bluetooth Devices To Wake This Computer checkbox.

  • How to prevent B1 from populating the grid with components?

    Hello group,
    We have customized a form that pops up when user enters a parent item (of a template-type BOM) in the quotation grid.  The form displays the component items and lets the user mark which items to "paste" onto the quotation.  However, B1 automatically populates the grid with the component items once focus moves away from the item code column. 
    <b>How to prevent B1 from populating the grid with components <i>while</i> retaining the parent item in the item code column?</b>  I've tried trapping the Validate event, etc. with no success.

    Instead of setting the parent item up as a template type BOM, you could set up the list of parent/child items on a user table and use this user table to display the items in your pop-up screen.  As the parent item would no longer be a template BOM, Business One would no longer automatically popuplate the grid, and you could write your own code to add only the items selected in your pop-up screen into the grid.
    John.

  • Gmail makes a lot of drafts when I am writing an email. How to prevent that from happening?

    When I wite email I have all the time drafts copied. How to prevent his from happening?

    writing Email produced in multiples in all mail
    Multi Copies of Drafts To Gmail Server

  • How 2 prevent time from changing on leopard and vista?

    if i maintain successive boots into the same OS on my macbook, the time is shown correctly, whereas on booting into another OS changes the time. how to prevent this from happening?
    Neerav

    From what my brother says says about his set-up (he boots into 64 bit Vista periodically), apparently you can't. My understanding is that the two systems do a different version of time at boot, Vista uses a GMT setting in bios, and I think Mac use a local time in EFI. Anyway, the result is several hours difference between the two. I don't use Boot Camp, but I would think if you are on a network with Internet access, you should be able to have the clock reset automatically using System Prefs->Date and Time, and check the box at the top to automatically set the time from the Apple time server.
    Francine
    Francine
    Schwieder

  • FF connects to several IP addresses on start-up, how to prevent it from happening?

    Hi, I am wondering how I can turn Firefox off from connecting to several IP addresses when it starts up?
    I have set Firefox to remember my visited web pages/tabs, but to not load until the tab is chosen.
    I have also gone through the advices on the following page:
    http://support.mozilla.org/en-US/kb/how-stop-firefox-automatically-making-connections
    and have followed it carefully and disabled everything but to no avail.
    Also in the about:config I have renamed all Google http(s) links to see if it prevents FF from connecting as some of the IP addresses leads to Google (173.194.32.*), but no success.
    A search here on Mozilla or Google gives very little on this particular matter.
    I have also disabled all addons but doesn't help.
    The only way to prevent FF from connecting with internet is to delete "prefs.js" and "sessionstore.js", but then I loose all history.
    I have also used a clean FF installation and taken the "prefs.js" and "sessionstore.js" so to not loose history, but it doesn't help.
    Can anyone help me out, thanks!

    Ok, I have now installed an original version of Firefox 13.0.1, set it up with a basic set of few add-ons for safe browsing being as follow:
    * NoScript
    * RequestPolicy
    * BetterPrivacy
    * HTTPS Everywhere
    In all cases described below, I browsed to a few pages, afterwards I go to an empty page/tab (about:newtab) before I close the browser, and is set to: "browser.newtabpage.enabled;false" in the hope also a newtab should be empty.
    I also followed the instructions under the following link: https://support.mozilla.org/en-US/kb/how-stop-firefox-automatically-making-connections
    * further on I have disabled a few other things under about:config to stop this "leak", such as webGL, telemetry, rename all google links, etc.
    1st test
    * I did restart in Off-line mode as described under the link given by jscher2000, when restarting the firewall shows no sign of connection to the internet, not even when I toggle from off-line to on-line.
    2nd test
    * with all add-ons enabled, I got the following result, see below for the list of IP numbers/info:
    * 212.121.101.7 Server Location: Netherlands ISP: Routit BV
    * 173.194.32.0 Server Location: Mountain View, CA in United States ISP: Google
    * 173.194.32.4 Server Location: Mountain View, CA in United States ISP: Google
    * 95.100.4.61 Server Location: Europe ISP: Akamai International B.V.
    * 192.150.19.49 Server Location: San Jose, CA in United States ISP: Adobe Systems
    * 78.129.207.59 Server Location: United Kingdom ISP: Iomart Hosting Limited
    * 69.50.232.54 Server Location: San Jose, CA in United States ISP: Silicon Valley Web Hosting
    * 82.103.140.42 Server Location: Denmark ISP: EasySpeedy ApS
    3rd test
    * I disabled all add-ons and closed browser, and started again, same result as in 2nd test, except that 212.121.101.7 was replaced by
    * 37.0.87.7 Server Location: Netherlands ISP: Routit BV .
    As this behavior has apparently nothing to do whether it's portable or non-portable version of Firefox, one can assume it has always been like this as at least between all versions from 13.0.1 to 19.0.2, as the portable version 19.0.2 behaves the same way.
    Let us not forget another user have experienced apparently the same issue under the following link: http://support.mozilla.org/en-US/questions/930187
    Any more ideas how the browser user can take control over this behavior, or any suggestions what could be wrong?

  • How to prevent users from creating transactional problems?

    Dear Sirs...
    Using JDeveloper 10.1.2 and ADF UIX technology. If i created a web application that contains many pages. Assume the application contains pages A,B,C,D.
    The end user should access the pages A then B then C then D to get the transaction executed and commited correctly.
    the problem is:
    1- if a user navigates from A to B to C then he press the Back button to A then he commits the transaction, the data would be stored in correctly.
    2- if page C requires some preparations in page B (initalization of session variables) and the user enters page A then he changes the URL to C, then this would cause inproper execution of application and so the data would be stored incorrectly.
    so how can i prevent the user from pressing the back button of the browser (which i do not think is possible) or how can i prevent him from making any errors by inproper page navigation?
    thanks for any help in advance and best regards

    I really don't know if this is the correct way of doing it, but we prevent navigation directly to any page within our application if the HTTP Referer header is null. If it's null, we redirect to a page that says the user should use the navigation buttons provided and not enter the page via bookmarks, history, or direct navigation via a typed in URL.

  • How to prevent users from saving and emailing intranet documents externally

    Someone in our company needs to upload a pdf to our sharepoint intranet site for internal-only use. How can I prevent users from downloading it and emailing it externally?
    I mean, a user could screenshot it I guess, but I need to give management a due diligence answer.

    You would need to look into a reverse proxy/firewall that had the ability to block access based on content. This isn't something you can accomplish out of the box with SharePoint (even with AD RMS).
    Trevor Seward
    Follow or contact me at...
    &nbsp&nbsp
    This post is my own opinion and does not necessarily reflect the opinion or view of Microsoft, its employees, or other MVPs.

  • Digital Signatures - how to prevent anyone from using my name

    I've created a bunch of forms that have digital signatures enabled.  When I've created one either with the PKCS or the Windows Certificate, what's to prevent anyone else from just typing my name, email address and Company Name?  Yes, I can create one and save it with a password, but anyone can do that.  I'm confused how I can ask our users to use digital signatures on internal documents, then have them email to accounting or HR, yet there's nothing to prevent anyone from using anyone else's name (ie how can I prove that it wasn't me that signed it)? 
    Is there nothing that's tied to Windows ie I can't use my login ID on our domain unless I use my network password?  That's really the ONLY way I can prove I'm me. 

    Self-signed digital signatures are precisely that - the person creating them is the only one attesting to the contents, so you can make a perfectly-valid self-signed ID for Canta Claus of you want to. The critical thing to remember is that a self-signed ID will only validate if the recipient has your keyfile to compare it to. On your own machine it will show as valid because the key is present, but if you send the PDF to anyone else it will show as invalid unless you have separately transferred them a copy of your keyfile. It's that second file which tells them the ID is really yours, as they can physically check where it came from (e.g. by phoning you up). The recipient would then have to manually add the keyfile to the trusted list in Acrobat or Adobe Reader, and finally your PDF signature will get the green tick.
    Self-signed IDs are find for internal company workflows as everyone can share their keyfiles, and the IT department can manage what's going on. If you're using digital IDs in a public setting you should never use self-signed certificates, instead you should purchase an ID from a Certificate Authority - a company whose IDs are tied to the 'root certificates' embedded in Acrobat and Adobe Reader. The CA will require proof of identity before selling you the cert, and so anyone can verify it's genuine without needing to contact you. CAS-issued certs for signing PDF files are not cheap, there are several vendors out there and I won't comment on which may be better.

  • How to prevent user from selecting a specific printer?

    Hi there
    I have a MailFolder which has an ArrayList of Email objects inside it. Each MailFolder has an attribute called folderFile which is a reference to a folder in the operating system. Each Email has an attribute called parentFile which is a reference to a file in the operating system.
    Now, I am trying to put printing into my application.
    When I print using a normal printer like my HP Deskjet or the likes - an actual physical printer - everything works fine. But when I print using the Microsoft Office Document Image Writer, things go wierd. The following things happen;
    I call myMailFolder.getFolderFile().exists() and this = false. But if I (in the debugger) make a new file pointing to the same path, .exists() = true. Also if I look in the OS, the file exists. So somehow in the job.print() this Document Image writer seems to be messing up this file reference. The same thing happens to the myEmail.getParentFile().
    So to fix this, can anyone tell me how to prevent the user from selecting this printer, or can anyone tell me why this is happening only with the Document Image Writer?
    Many thanks!
    Rachel

    I have similar problem with our printing program. I am printing Java Tables, zoom in every column in a landscape page accross multiple pages.
    There are two fatal problems:
    1. On Dell Latitude laptop, the HP5100 printer didn't work; I have to change the code to draw the table header with 2D graphics.
    2. Crash when printing on MS document image writer, but on some computers
    it works perfectly.
    Any one have a good solution/same result for topic 2?
    Thanks,

  • How to prevent images from loading?

    I am working on creating a web gallery in Dreamweaver CS3.  The thumbnails are in a horizontal strip within a layer above the full sized image layer, in other words the strip is  hiding part of the image, but only when the image is in a vertical orientation. (the strip has no background, so all that is visible are the actual thumbnails) Upon clicking show/hide text , in a toggle configuration, the strip fades, or shows.   On my computer it works perfectly. However, once uploaded, it takes forever to load the images.
    The problem: Although I have the thumbnail images are set to preload,  all of the full size images are loading as well, which takes alot of time. Is there a way to prevent the full sized images from loading, i.e. only when the thumbnail is clicked?
    Frames, in which one frame is thumbnails, and another the is images, is what I normally would use, and have a page for each image. However, for what I have in mind, it will not work (transparency on parts of one frame above another is as far as I can tell not possible).
    So how do I prevent images from loading until called for?  regards~bill-o

    t would help if you posted a link to the page, but I can guess that you have properly diagnosed the cause - the page is encumbered with the weight of all of the full-sized images.
    The only way to not have this happen would be to dynamically write the link to the full sized-images on demand, as it were.  In other words, the link ISN'T EVEN ON THE PAGE until you have clicked on the corresponding thumbnail, and only at that point is the weight of that image experienced.  One easy way to do this is to use the SetText of Container behavior that is part of DW's native arsenal of behaviors.  When the thumb is clicked, the SetText behavior is called to write the image link into the enlarged image's container. Need to see a demo?  Look here -
    http://dreamweaverresources.com/tutorials/settextoflayer.htm
    The behavior is called "Set Text of Container", and using it will meet all of your requirements.
    To use it, you will have to have the following:
    1.  A page with a 'container' which is to receive the enlarged image - this could be a table cell, a paragraph tag, a div, or even a span tag.
    2.  That container will have to be identified with an ID attribute and a valid value, e.g., <div id="enlargedImage">.
    3.  A dummy page containing each enlarged image, placed sequentially on the page.
    To implement the effect, do the following:
    1.  Open the dummy page in Code view, and select the first image's tag, e.g., <img src="images/foo.jpg" width="123" height="256" alt="whatever" /> (XHTML syntax shown here).
    2.  Switch to the actual page, select a thumb that will 'open' this enlarged image, and enter "javascript:;" (that's colon semicolon) in the 'Link' field of the Property inspector to make this thumbnail image a null link.
    3.  Apply the Set Text of Container behavior.
    4.  Paste the clipboard into the dialog for the behavior, and click OK to close the dialog.
    5.  Examine the Behavior panel to see which mouse event has been defaulted - probably 'onclick'.  If you would rather have this be 'onmouseover' use the Behavior panel Event selector (the dark triangle to the right of the event name) to select 'onmouseover'.
    5.  Repeat from #1 above until all thumbs have been treated.
    Let us know if this does not make sense

  • How to prevent user from creating jobs

    Hi,
    we need to prevent user from creating jobs on a dev enviorement. It's a 10.2.0.4 database standard on linux 64bits.
    Their schema has only connect and resource roles. Is there a way to prevent them from creating jobs? In 11g it's the CREATE JOB permission, but in 10g i'm not sure how can i do this.
    Thanks for any ideas!

    On 10g it's probably the CREATE JOB as well.
    http://www.oracle.com/pls/db102/homepage
    Alternatively you could:
    alter system set job_queue_processes=0
    http://download.oracle.com/docs/cd/B19306_01/server.102/b14237/initparams089.htm#REFRN10077

Maybe you are looking for

  • Relationship contact person BUR001

    Hi, When I create a new contact person in IC Webclient, by default it is creating a relationship BUR001. How can I change this to create a other relationship, or add matchcode for selection? Thanks,

  • Mobileme and ical not syncing

    Mobileme is broken and not opening ical when I am signed in.  mac and iphone and macbook can't sync ical with each other.  the round disc just runs and runs until it times out with error message.  This is on discussion boards and wide spread.  When w

  • Problem booting up on macbook pro

    Hey everyone, Long story short I bought my macbook pro in August of 2011. Its the 15" with the Core i7 2.2ghz 4GB ram 750gb HD yada yada Anyways I started having problems and I started noticing it this week. about a day ago I went to turn it on after

  • Downloading audio files (.wav)

    Hi All, I have posted this question under safari and iMovie(HD) and I know this is a pro vid discussion board but I think this deals less with iMovie than a generic audio download issue for use in a video application (although instructions on how to

  • My iPad was stolen and I can not find how to track it.

    My iPad was stolen and I can not find how to track it. Please help? I am not on iCloud but used to be able to find although I never subscribed to any service just set "find me" feature on iPad. Regards Simon