Re: FWD: - no subject (01IB7Q2B9LQW0098V8) -

Peggy,
You CAN trap a SHIFT-CLICK for multiple selection on array fields. We use Express.
ArrayWidget is an attribute in the ExpressArrayWindow class of type ArrayDesc. If you
don't use Express then trap the childClick event on the ArrayField(I think).
when ArrayWidget.Field.ChildClick(modf = modifier) do
if ( modf = KM_SHIFT) then // Shift Key was pressed
Regards,
____ \ / ____ CrossKeys Systems Corporation
___ \ X / ___
\ X X / Crosskeys Centre Peter Kelly
X X X 350 Terry Fox Drive Software Designer
___/ X X \___ Kanata, Ontario
____/ X \____ Canada K2K 2W5 [email protected]
_____/ \_____ (613) 591-1600 Ext. 8247
ADRIAN PEGGY LYNN wrote:
>
I saved some previous comments that may help you.
The first is from John Jamison and says:
Simple, easy answer - yes and no. You can't do multiple selection in the
standard way ("shift click"). But you can develop "select-act" user
interactions where the action takes place on multiple "selected" items.
The typical suggested workarounds are to embed checkboxes as attributes in
the outline or array field, and use the checkbox to delineate "selected"
rows from "unselected" ones.
Another mechanism for array fields is to change the row color. How to do
this is detailed in a tech note (it is not easy). Basically you'd
maintain an internal variable reflecting the current row color, toggle the
row color via a click ("shift click" is not possible still). When you
take an action on the selected list, you then loop through the array and
act on ones with the selection color toggle on.
Its too bad that it is this way. Multiple selection is such a fundamental
user interaction on all platforms. The above work arounds do "work" but
they are minimalist. You could, after all, build functional user
interfaces without buttons.
The second is a technote from a Forte technote:
Technote #10684
Often times it is desirable to put FieldWidgets in OutlineFields to give
the user an ability to click on them as they would in other parts of the
window. However, because OutlineFields are built upon the DisplayNode
class, you cannot define a FieldWidget in the DisplayNode. You can
however define an ImageData attribute for the DisplayNode, and assign any
PictureGraphic to the ImageData attribute.
Regards,
Peggy Adrian
[email protected]
Subject: - no subject (01IB7Q2B9LQW0098V8) -
From: Ronald Celis <[email protected]>
To: 'Forte Users Group' <[email protected]>
Hi guys :
Can somebody help me ?
I want to highlite an array element in my window, but when i try to do
this the only way highliting all the column. How can i make this ?
Regards
Ronald Celis B.
Forte developer
[email protected]
RFC-822-headers:
Received: from pebble.Sagesoln.com by INET.D48.LILLY.COM (PMDF V5.0-6 #15017)
id <[email protected]>; Tue,
29 Oct 1996 11:51:50 -0500 (EST)
Received: (from sync@localhost) by pebble.Sagesoln.com (8.6.10/8.6.9)
id IAA21474 for forte-users-outgoing; Tue, 29 Oct 1996 08:06:04 -0800
Received: (from uucp@localhost) by pebble.Sagesoln.com (8.6.10/8.6.9)
id IAA21468 for <[email protected]>; Tue, 29 Oct 1996 08:06:02 -0800
Received: from unknown(200.0.107.178) by pebble.sagesoln.com via smap (V1.3)
id sma021460; Tue Oct 29 08:05:24 1996
Received: by firegmd.gmd.com.pe id <18434>; Tue, 29 Oct 1996 11:05:46 -0500
Date: Tue, 29 Oct 1996 11:02:23 -0500
From: Ronald Celis <[email protected]>
Subject: - no subject (01IB7Q2B9LQW0098V8) -
Sender: [email protected]
To: 'Forte Users Group' <[email protected]>
Reply-to: Ronald Celis <[email protected]>
Message-id: <[email protected]>
X-Mailer: Microsoft Exchange Server Internet Mail Connector Version 4.0.993.5
Precedence: bulk--

I saved some previous comments that may help you.
The first is from John Jamison and says:
Simple, easy answer - yes and no. You can't do multiple selection in the
standard way ("shift click"). But you can develop "select-act" user
interactions where the action takes place on multiple "selected" items.
The typical suggested workarounds are to embed checkboxes as attributes in
the outline or array field, and use the checkbox to delineate "selected"
rows from "unselected" ones.
Another mechanism for array fields is to change the row color. How to do
this is detailed in a tech note (it is not easy). Basically you'd
maintain an internal variable reflecting the current row color, toggle the
row color via a click ("shift click" is not possible still). When you
take an action on the selected list, you then loop through the array and
act on ones with the selection color toggle on.
Its too bad that it is this way. Multiple selection is such a fundamental
user interaction on all platforms. The above work arounds do "work" but
they are minimalist. You could, after all, build functional user
interfaces without buttons.
The second is a technote from a Forte technote:
Technote #10684
Often times it is desirable to put FieldWidgets in OutlineFields to give
the user an ability to click on them as they would in other parts of the
window. However, because OutlineFields are built upon the DisplayNode
class, you cannot define a FieldWidget in the DisplayNode. You can
however define an ImageData attribute for the DisplayNode, and assign any
PictureGraphic to the ImageData attribute.
Regards,
Peggy Adrian
[email protected]

Similar Messages

  • FWD: Re: - no subject (01IB7Q2B9LQW0098V8) -

    The tech notes are now available on Forte's Home page at
    http://www.forte.com/.
    On the home page, select " technical information". From there, there is a
    selection of "technical notes". Before you can access it, you will need
    to call Forte's technical support at 510-451-5400 and have a user ID and
    password assigned.
    Hope this helps.
    Regards,
    Peggy Adrian
    Eli Lilly & Co.
    [email protected]

    I saved some previous comments that may help you.
    The first is from John Jamison and says:
    Simple, easy answer - yes and no. You can't do multiple selection in the
    standard way ("shift click"). But you can develop "select-act" user
    interactions where the action takes place on multiple "selected" items.
    The typical suggested workarounds are to embed checkboxes as attributes in
    the outline or array field, and use the checkbox to delineate "selected"
    rows from "unselected" ones.
    Another mechanism for array fields is to change the row color. How to do
    this is detailed in a tech note (it is not easy). Basically you'd
    maintain an internal variable reflecting the current row color, toggle the
    row color via a click ("shift click" is not possible still). When you
    take an action on the selected list, you then loop through the array and
    act on ones with the selection color toggle on.
    Its too bad that it is this way. Multiple selection is such a fundamental
    user interaction on all platforms. The above work arounds do "work" but
    they are minimalist. You could, after all, build functional user
    interfaces without buttons.
    The second is a technote from a Forte technote:
    Technote #10684
    Often times it is desirable to put FieldWidgets in OutlineFields to give
    the user an ability to click on them as they would in other parts of the
    window. However, because OutlineFields are built upon the DisplayNode
    class, you cannot define a FieldWidget in the DisplayNode. You can
    however define an ImageData attribute for the DisplayNode, and assign any
    PictureGraphic to the ImageData attribute.
    Regards,
    Peggy Adrian
    [email protected]

  • Trouble Compiling my Email-client

    Hi
    I have written this email -client, but have some trouble compiling it !
    Then I try to compile it the following errors:
    MailClient.java:350: <identifier> expected
    public syncronize void mails(String t){
    ^
    MailClient.java:727: ';' expected
    private class myWindowListener extends WindowAdapter{
    ^
    MailClient.java:747: '}' expected
    3 errors.
    What do I need to change to correct these errors ?
    I hope that there is somebody out there who can help me get my program to work.
    Thanks in advance.
    Sincrely Yours
    Fred
    import java.io.*;
    import java.awt.*;
    import java.util.*;
    import java.awt.event.*;
    import javax.swing.*;
    import javax.swing.tree.*;
    import javax.swing.event.*;
    public class MailClient extends JFrame implements ActionListener{ 
    private Sendman mySendman;
    private Letterman myLetterman;
    public Writer myWrite;
    public Reader myReader;
    public Composer myComposer;
    private Setup mySetup;
    public Addressbook myAdressbook;
    private FixTask myFixTask;
    private Filter myFilter;
    private Info myInfo;
    public Vector mailIndexVector = new Vector();
    public Vector filterIndexVector = new Vector();
    public Vector folderVector = new Vector();
    private JPanel tArea, trae, icon, tField;
    private JTextArea ta;
    private JScrollPane view, treeScroll;
    private JTree tree;
    public JTextField tf;
    private JSplitPane split;
    private Dimension Size;
    private MailClient myMailClient;
    private String mailBody, subject, from;
    public boolean fromOutbox = false;
    public boolean viewSource = false;
    public static void main (String[] args) {
         MailClient myMailClient = new MailClient();
    public MailClient() {
         super("Mail-Client");
         ImageIcon linux = new ImageIcon("linux.gif");
         this.setIconImage(linux.getImage());
         icon = new JPanel();
         icon.setLayout(new FlowLayout(FlowLayout.LEFT));
         ImageIcon neu = new ImageIcon("getmail.gif");
         JButton neueMails = new JButton(neu);
         newMails.setActionCommand("Getting new Mails");
         newMails.addActionListener(this);
         newMails.setBorderPainted(false);
         newMails.setToolTipText("Getting new Mails");
         ImageIcon cr = new ImageIcon("creator.gif");
         JButton creator = new JButton(cr);
         creator.setActionCommand("Creator open");
         creator.addActionListener(this);
         creator.setBorderPainted(false);
         creator.setToolTipText("Creator open");
         JButton rep = new JButton(new ImageIcon("reply.gif"));
         rep.setActionCommand("rep");
         rep.addActionListener(this);
         rep.setBorderPainted(false);
         rep.setToolTipText("Reply");
         JButton fwd = new JButton(new ImageIcon("fwd.gif"));
         fwd.setActionCommand("fwd");
         fwd.addActionListener(this);
         fwd.setBorderPainted(false);
         fwd.setToolTipText("Forward");
         JButton ein = new JButton(new ImageIcon("settings.gif"));
         ein.setActionCommand("settings open");
         ein.addActionListener(this);
         ein.setBorderPainted(false);
    ein.setToolTipText("Setting open");
    JButton adr = new JButton(new ImageIcon("adressbook.gif"));
    adr.setActionCommand("adr");
    adr.addActionListener(this);
    adr.setBorderPainted(false);
    adr.setToolTipText("Addressbook");
    JButton lo = new JButton(new ImageIcon("trash.gif"));
    lo.setActionCommand("trash");
    lo.addActionListener(this);
    lo.setBorderPainted(false);
    lo.setToolTipText("trash");
    JButton in = new JButton(new ImageIcon("info.gif"));
    in.setActionCommand("Information");
    in.addActionListener(this);
    in.setBorderPainted(false);
    in.setToolTipText("Information");
    icon.add(newMails);
    icon.add(creator);
    icon.add(rep);
    icon.add(fwd);
    icon.add(set);
    icon.add(adr);
    icon.add(lo);
    icon.add(in);
    Vector h1 = myLeser.lese("Summary.4on");
    for(int i=0; i<h1.size(); i+=7){
    String id = h1.elementAt(i).toString();
    String fo = h1.elementAt(i+1).toString();
    String su = h1.elementAt(i+2).toString();
    String fr = h1.elementAt(i+3).toString();
    String to = h1.elementAt(i+4).toString();
    String da = h1.elementAt(i+5).toString();
    String re = h1.elementAt(i+6).toString();
    MailIndex index = new MailIndex(id, fo, su, fr, to, da, re);
    mailIndexVector.addElement(index);
    Vector h2 = myReader.read("Filter.4on");
    for(int j=0; j<h2.size(); j+=3){
    String fo = h2.elementAt(j).toString();
    String from = h2.elementAt(j+1).toString();
    String te = h2.elementAt(j+2).toString();
    FilterIndex index = new FilterIndex(fo, from, te);
    filterIndexVector.addElement(index);
    folderVector = myReader.read("Folder.4on");
    DefaultMutableTreeNode top, inbox, outbox, sentbox, trash;
    top = new DefaultMutableTreeNode("mails");
    top.add(inbox = new DefaultMutableTreeNode("Inbox"));
    for(int i=0; i<mailIndexVector.size(); i++){
    MailIndex m = (MailIndex)mailIndexVector.elementAt(i);
    if (m.folder.equals("Inbox"))
         inbox.add(new DefaultMutableTreeNode(m));
    top.add(outbox = new DefaultMutableTreeNode("Outbox"));
    for(int i=0; i<mailIndexVector.size(); i++){
    MailIndex m = (MailIndex)mailIndexVector.elementAt(i);
    if (m.folder.equals("Outbox")){
         outbox.add(new DefaultMutableTreeNode(m));
    top.add(sentbox = new DefaultMutableTreeNode("Sentbox"));
    for(int i=0; i<mailIndexVector.size(); i++){
    MailIndex m = (MailIndex)mailIndexVector.elementAt(i);
    if (m.folder.equals("Sentbox"))
         sentbox.add(new DefaultMutableTreeNode(m));
    for(int j=0; j<folderVector.size(); j++){
    top.add(trash =
         new DefaultMutableTreeNode(folderVector.elementAt(j).toString()));
    for(int i=0; i<mailIndexVector.size(); i++){
         MailIndex m = (MailIndex)mailIndexVector.elementAt(i);
         if (m.folder.equals(folderVector.elementAt(j).toString()))
         trash.add(new DefaultMutableTreeNode(m));
    tree = new JTree(top);
    tree.getSelectionModel().setSelectionMode
    (TreeSelectionModel.SINGLE_TREE_SELECTION);
    tree.addTreeSelectionListener(new myTreeSelectionListener());
    treeScroll = new JScrollPane(tree);
    treeScroll.setFont(new Font("Monospaced",Font.PLAIN,6));
    baum.add("Center", treeScroll);
    MainMenu menuBar = new MainMenu(this, this);
    setJMenuBar(menuBar);
    setVisible(true);
    public void mailsFetcher() {
    myLetterman = new Letterman(this, mySetup);
    myLetterman.start();
    public void treeNewSign(){
    trae.remove(treeScroll);     
    DefaultMutableTreeNode top, inbox, outbox, sentbox, trash;
    top = new DefaultMutableTreeNode("mails");
    top.add(inbox = new DefaultMutableTreeNode("Inbox"));
    for(int i=0; i<mailIndexVector.size(); i++){
    MailIndex m = (MailIndex)mailIndexVector.elementAt(i);
    if (m.folder.equals("Inbox"))
         inbox.add(new DefaultMutableTreeNode(m));
    top.add(outbox = new DefaultMutableTreeNode("Outbox"));
    for(int i=0; i<mailIndexVector.size(); i++){
    MailIndex m = (MailIndex)mailIndexVector.elementAt(i);
    if (m.folder.equals("Outbox"))
         outbox.add(new DefaultMutableTreeNode(m));
    top.add(sentbox = new DefaultMutableTreeNode("Sentbox"));
    for(int i=0; i<mailIndexVector.size(); i++){
    MailIndex m = (MailIndex)mailIndexVector.elementAt(i);
    if (m.folder.equals("Sentbox"))
         sentbox.add(new DefaultMutableTreeNode(m));
    for(int j=0; j<folderVector.size(); j++){
    top.add(trash =
         new DefaultMutableTreeNode(folderVector.elementAt(j).toString()));
    for(int i=0; i<mailIndexVector.size(); i++){
         MailIndex m = (MailIndex)mailIndexVector.elementAt(i);
         if (m.folder.equals(folderVector.elementAt(j).toString()))
         trash.add(new DefaultMutableTreeNode(m));
    tree = new JTree(top);
    tree.getSelectionModel().setSelectionMode
    (TreeSelectionModel.SINGLE_TREE_SELECTION);
    tree.addTreeSelectionListener(new myTreeSelectionListener());
    treeScroll = new JScrollPane(tree);
    trae.add("Center", treeScroll);
    trae.repaint();
    setVisible(true);
    public void menuNewSign(){
    setJMenuBar(new MainMenu(this, this));
    setVisible(true);
    public String fromFilter (String t){
    String myFrom = "";
    int start, end;
    int a = t.indexOf("From:");
    if (a != -1){
    start = a + 6;
    ende = t.indexOf("\n",start);
    myFrom = t.substring(start,end);
    return myFrom;
    public String toFilter (String t){
    String myTo = "";
    int start, e1, e2, end;
    int a = t.indexOf("To:");
    if (a != -1){
    start = a + 4;
    end = t.indexOf("\n",start);
    myTo = t.substring(start,end);
    e1 = end + 1;
    if(t.substring(e1,e1+1).equals(" ")){
         while(t.substring(e1,e1+1).equals(" ")){
         while(t.substring(e1,e1+1).equals(" "))
         e1++;
         e2 = t.indexOf("\n",e1);
         myTo += " " + t.substring(e1,e2);
         e1 = e2 + 1;
    return myTo;
    public String dateFilter (String t){
    String myDate = "";
    int start, end;
    int a = t.indexOf("Date:");
    if (a != -1){
    start = a + 6;
    end = t.indexOf("\n",start);
    myDate = t.substring(start,end);
    return myDate;
    public String subjectFilter (String t){
    String mySubject = "";
    int start, end;
    int a = t.indexOf("Subject:");
    if (a != -1){
    start = a + 9;
    end = t.indexOf("\n",start);
    mySubject = t.substring(start,end);
    return mySubject;
    public String mailFilter (String t){ 
    String myMail = "";
    int start = 0, end = t.length();
    start = t.indexOf("\n\n") + 2;
    if (start != 1){
    int a = t.indexOf("\n\n" ,start);
    if (a != -1){
         if (t.indexOf(".",a+2) == a+2)
         if (t.indexOf("\n",a+3) == a+3)
         start = a;
    myMail = t.substring(start,end);
    return myMail;
    public void mailsRemark(String file){
    String mail = "", t = "";
    Vector mailVector = myReader.read(file);
    for (int i=0; i<mailVector.size(); i++)
    t += (String)mailVector.elementAt(i) + "\n";
    from = fromFilter(t);
    subject = subjectFilter(t);
    mailBody = mailFilter(t);
    mail += "Subject: " + subject + "\n";
    mail += "Date: " + dateFilter(t) + "\n";
    mail += "From: " + from + "\n";
    mail += "To: " + toFilter(t) + "\n";
    mail += "\n" + mailBody;
    if(viewSource == true)
    ta.setText(t);
    else
    ta.setText(mail);
    public syncronize void mails(String t){
    Status myStatus = new Status(this,t);
    myStatus.start();
    public void delete(){
    if(tree.getLastSelectedPathComponent() != null){
    DefaultMutableTreeNode node =
         (DefaultMutableTreeNode)tree.getLastSelectedPathComponent();
    if(node.isLeaf()){
         Object nodeInfo = node.getUserObject();
         if(nodeInfo instanceof MailIndex){
         MailIndex index = (MailIndex)nodeInfo;
         mailIndexVector.removeElement(index);
         int count = 0;
         for(int j=0; j<mailIndexVector.size(); j++){
         MailIndex index1 = (MailIndex)mailIndexVector.elementAt(j);
         String id = index1.mailId;
         if(id.equals(index.mailId))
         count++;
         if(count == 0){
         File home = new File(".");
         String mailsRemark = "." + home.separator + "data";
         File datei = new File(mailsRemark, index.mailId);
         datei.delete();
         treeNewSign();
         menuNewSign();
         else{
         String t = (String)nodeInfo;
         boolean toDelete = false;
         for (int i=0; i<folderVector.size(); i++){
         if(folderVector.elementAt(i).equals(t)){
         folderVector.removeElement(t);
         konnteLoeschen = true;
         if(toDelete == false){
         message("This folder can not be deleted!");
         treeNewSign();
    else
         message("Folder is not Empty! Please delete Your mails.");
    else
    message("No Mails where selected to be deleted!");
    public void forward(){
    if(from != null){
    creatorOeffnen();
    myCreator.tfSb.setText("Fwd to: " + subject);
    myCreator.ta.setText("<" + from + ">" + " wrote:\n\n" + mailBody +
                   "\n\n>\n>\n\n");
    public void reply(){
    if(from != null){
    creatorOeffnen();
    myCreator.tfTo.setText(from);
    myCreator.tfSb.setText("Reply to: " + subject);
    myCreator.ta.setText("<" + from + ">" + " wrote:\n\n" + mailBody +
                   "\n\n>\n>\n\n");
    public void end(){
    String h = "";
    for (int i=0; i<mailIndexVector.size(); i++){
    MailIndex index = (MailIndex)mailIndexVector.elementAt(i);
    h += index.mailId + "\n";
    h += index.folder + "\n";
    h += index.subject + "\n";
    h += index.from + "\n";
    h += index.to + "\n";
    h += index.date + "\n";
    h += index.read + "\n";
    myWriter.writer(h,"Summary.4on");
    String w = "";
    for (int l=0; l<filterIndexVector.size(); l++){
    FilterIndex index = (FilterIndex)filterIndexVector.elementAt(l);
    w += index.folder + "\n";
    w += index.from + "\n";
    w += index.text + "\n";
    myWriter.write(w,"Filter.4on");
    String k = "";
    for(int j=0; j<folderVector.size(); j++)
    k += folderVector.elementAt(j).toString() + "\n";
    myWriter.writer(k,"Folder.4on");
    String t = "";
    for (int l=0; l<myAddressBook.addressIndexVector.size(); l++){
    AddressIndex aindex =
         (AddressIndex)myAdressBook.adressIndexVector.elementAt(l);
    t += aindex.alias + "\n";
    t += aindex.email + "\n";
    myWriter.write(t,"Address.4on");
    setVisible(false);
    dispose();
    System.exit(0);
    public void filterOpen(){
    boolean test = false;
    if(tree.getLastSelectedPathComponent() != null){
    DefaultMutableTreeNode node =
         (DefaultMutableTreeNode)tree.getLastSelectedPathComponent();
    Object nodeInfo = node.getUserObject();
    if(nodeInfo instanceof String){
         myFilter.folder = (String)nodeInfo;
         for(int i=0; i<filterIndexVector.size(); i++){
         FilterIndex h = (FilterIndex)filterIndexVector.elementAt(i);
         if(h.folder.equals(nodeInfo)){
         myFilter.index = h;
         test = true;
         if(h.from.equals("")){
         myFilter.box1 = false;
         myFilter.fTf.setText("");
         myFilter.fBox.setSelected(false);
         myFilter.fTf.setEditable(false);
         else{
         myFilter.box1 = true;
         myFilter.fTf.setText(h.from);
         myFilter.fBox.setSelected(true);
         myFilter.fTf.setEditable(true);
         if(h.text.equals("")){
         myFilter.box2 = false;
         myFilter.tTf.setText("");
         myFilter.tBox.setSelected(false);
         myFilter.tTf.setEditable(false);
         else{
         myFilter.box2 = true;
         myFilter.tTf.setText(h.text);
         myFilter.tBox.setSelected(true);
         myFilter.tTf.setEditable(true);
         break;
    myFilter.setVisible(true);
    myFilter.fBox.requestFocus();
    else
    meldung("No selection");
    public void sendOutbox(){
    fromOutbox = true;
    int i;
    Block1:
    for(i=0; i<mailIndexVector.size(); i++){
    MailIndex index = (MailIndex)mailIndexVector.elementAt(i);
    if(index.folder.equals("Outbox")){
         Vector mailVector = myReader.read(index.mailId);
    Block2:
         for(int j=0; j<mailVector.size(); j++){
         String m = (String)mailVector.elementAt(j);
         if(m.indexOf("Subject:") != -1){
         for(int k=0; k<=j+1; k++){
         mailVector.removeElementAt(0);
         break Block2;
         Vector toVector = new Vector();
         int tEnd = 1;
         String line = "";
         String t = index.to;
         while (tEnd != -1){
         tEnd = t.indexOf(", ");
         if (tEnd == -1)
         line = t;
         else
         line = t.substring(0,tEnd);
         t = t.substring(tEnd + 1);
         toVector.addElement(line);
         File home = new File(".");
         String mailsVerzeichnis = "." + home.separator + "data";
         File datei = new File(mailsRemark, index.mailId);
         datei.delete();
         mySendman = new Sendman(mailVector, toVector, index.subject,
         ailsAnzeig               mySetup, this);
         mySendman.start();
         mailIndexVector.removeElement(index);
         break Block1;
    if(i == mailIndexVector.size())
    fromOutbox = false;
    treeNewSign();
    public void partion(String cmd){
    if(tree.getLastSelectedPathComponent() != null){
    DefaultMutableTreeNode node =
         (DefaultMutableTreeNode)tree.getLastSelectedPathComponent();
    Object nodeInfo = node.getUserObject();
    if(nodeInfo instanceof MailIndex){
         MailIndex index = (MailIndex)nodeInfo;
         index.folder = cmd.substring(13).toString();
         treeNewSign();
    else
    meldung("No mails to partion!");
    public void SetupOpen(){
    if (mySetup.savePassword == false)
    mySetup.pTf.setText("");
    mySetup.setVisible(true);
    mySetup.aTf.requestFocus();
    public void addressbookOpen(){
    myAddressBook.setVisible(true);
    myAdressBook.tree.requestFocus();
    public void creatorOpen(){
    myCreator.setVisible(true);
    myCreator.tfTo.requestFocus();
    public void actionPerformed(ActionEvent event){
    Object obj = event.getSource();
    if (obj instanceof JMenuItem){
    String cmd = event.getActionCommand();
    if (cmd.equals("New fetched")){
         mailsfetch();
    else if (cmd.equals("Written new mails")) {
         creatorOpen();
    else if (cmd.equals("Reply")) {
         reply();
    else if (cmd.equals("Forward")) {
         forward();
    else if (cmd.equals("Outbox")) {
         sendOutbox();
    else if (cmd.equals("Delete")) {
         delete();
    else if ((cmd.length() >13) &&
         (cmd.substring(0,13).equals("Sorting-"))){
         sorting(cmd);
    else if (cmd.equals("Using Addressbook")){
         addressbookOpen();
    else if (cmd.equals("Filter working")){
         filterOpen();
    else if (cmd.equals("New Order")){
         myFixTask.tf.setText("");
         myFixTask.setVisible(true);
         myFixTask.tf.requestFocus();
    else if (cmd.equals("delete")){
         delete();
    else if ((cmd.length() >7) &&
         (cmd.substring(0,7).equals("nobody"))){
         if(viewSource == false){
         viewSource = true;
         menuNewSign();
         if(tree.getLastSelectedPathComponent() != null){
         DefaultMutableTreeNode node =
         (DefaultMutableTreeNode)tree.getLastSelectedPathComponent();
         Object nodeInfo = node.getUserObject();
         if(nodeInfo instanceof MailIndex){
         MailIndex index = (MailIndex)nodeInfo;
         mailsRemark(index.mailId);
         else{
         viewSource = false;
         menuNeuZeichnen();
         if(tree.getLastSelectedPathComponent() != null){
         DefaultMutableTreeNode node =
         (DefaultMutableTreeNode)tree.getLastSelectedPathComponent();
         Object nodeInfo = node.getUserObject();
         if(nodeInfo instanceof MailIndex){
         MailIndex index = (MailIndex)nodeInfo;
         mailsRemark(index.mailId);
    else if (cmd.equals("Setup")){
         SetupOpen();
    else if (obj instanceof JButton){
    String cmd = event.getActionCommand();
    if (cmd.equals("aga")){
         mailsHolen();
    else if (cmd.equals("Creator Open")){
         creatorOpem();
    else if(cmd.equals("rep")){
         reply();
    else if(cmd.equals("fwd")){
         forward();
    else if(cmd.equals("Setup Open")){
    SetupOpen();
    else if(cmd.equals("adr")){
         addressbookOpen();
    else if(cmd.equals("delete")){
         delete();
    else if(cmd.equals("Information")){
         myInfo.setVisible(true);
         myInfo.b.requestFocus();
    private class myWindowListener extends WindowAdapter{
    public void windowClosing(WindowEvent event){
    end();
    private class myTreeSelectionListener implements TreeSelectionListener{
    public void valueChanged(TreeSelectionEvent e) {
    DefaultMutableTreeNode node =
         (DefaultMutableTreeNode)(e.getPath().getLastPathComponent());
    Object nodeInfo = node.getUserObject();
    if(nodeInfo instanceof MailIndex){
         MailIndex index = (MailIndex)nodeInfo;
         mailsAnzeigen(index.mailId);
         index.read = "Yes";

    Some suggestions:
    1. as the others stated- you should really post specific questions rather than 1 huge ugly class!
    2. use code tags
    3. get a decent IDE- it would take about 1 minute to then see where the error is-
    4. the rrors were just misspelled 'synchronized' and missing argument ','
    5. Try not to make such huge classes!!- Try to follow certain coding "patterns"- like MVC- and not stick everything in 1 class- separate the functionality- it makes coding much easier!
    here is fixed code (at least gets rid of those last errors):
    import java.io.*;
    import java.awt.*;
    import java.util.*;
    import java.awt.event.*;
    import javax.swing.*;
    import javax.swing.tree.*;
    import javax.swing.event.*;
    public class MailClient extends JFrame implements ActionListener{
      private Sendman mySendman;
      private Letterman myLetterman;
      public Writer myWrite;
      public Reader myReader;
      public Composer myComposer;
      private Setup mySetup;
      public Addressbook myAdressbook;
      private FixTask myFixTask;
      private Filter myFilter;
      private Info myInfo;
      public Vector mailIndexVector = new Vector();
      public Vector filterIndexVector = new Vector();
      public Vector folderVector = new Vector();
      private JPanel tArea, trae, icon, tField;
      private JTextArea ta;
      private JScrollPane view, treeScroll;
      private JTree tree;
      public JTextField tf;
      private JSplitPane split;
      private Dimension Size;
      private MailClient myMailClient;
      private String mailBody, subject, from;
      public boolean fromOutbox = false;
      public boolean viewSource = false;
      public static void main (String[] args) {
        MailClient myMailClient = new MailClient();
      public MailClient() {
        super("Mail-Client");
        ImageIcon linux = new ImageIcon("linux.gif");
        this.setIconImage(linux.getImage());
        icon = new JPanel();
        icon.setLayout(new FlowLayout(FlowLayout.LEFT));
        ImageIcon neu = new ImageIcon("getmail.gif");
        JButton neueMails = new JButton(neu);
        newMails.setActionCommand("Getting new Mails");
        newMails.addActionListener(this);
        newMails.setBorderPainted(false);
        newMails.setToolTipText("Getting new Mails");
        ImageIcon cr = new ImageIcon("creator.gif");
        JButton creator = new JButton(cr);
        creator.setActionCommand("Creator open");
        creator.addActionListener(this);
        creator.setBorderPainted(false);
        creator.setToolTipText("Creator open");
        JButton rep = new JButton(new ImageIcon("reply.gif"));
        rep.setActionCommand("rep");
        rep.addActionListener(this);
        rep.setBorderPainted(false);
        rep.setToolTipText("Reply");
        JButton fwd = new JButton(new ImageIcon("fwd.gif"));
        fwd.setActionCommand("fwd");
        fwd.addActionListener(this);
        fwd.setBorderPainted(false);
        fwd.setToolTipText("Forward");
        JButton ein = new JButton(new ImageIcon("settings.gif"));
        ein.setActionCommand("settings open");
        ein.addActionListener(this);
        ein.setBorderPainted(false);
        ein.setToolTipText("Setting open");
        JButton adr = new JButton(new ImageIcon("adressbook.gif"));
        adr.setActionCommand("adr");
        adr.addActionListener(this);
        adr.setBorderPainted(false);
        adr.setToolTipText("Addressbook");
        JButton lo = new JButton(new ImageIcon("trash.gif"));
        lo.setActionCommand("trash");
        lo.addActionListener(this);
        lo.setBorderPainted(false);
        lo.setToolTipText("trash");
        JButton in = new JButton(new ImageIcon("info.gif"));
        in.setActionCommand("Information");
        in.addActionListener(this);
        in.setBorderPainted(false);
        in.setToolTipText("Information");
        icon.add(newMails);
        icon.add(creator);
        icon.add(rep);
        icon.add(fwd);
        icon.add(set);
        icon.add(adr);
        icon.add(lo);
        icon.add(in);
        Vector h1 = myLeser.lese("Summary.4on");
        for(int i=0; i<h1.size(); i+=7){
          String id = h1.elementAt(i).toString();
          String fo = h1.elementAt(i+1).toString();
          String su = h1.elementAt(i+2).toString();
          String fr = h1.elementAt(i+3).toString();
          String to = h1.elementAt(i+4).toString();
          String da = h1.elementAt(i+5).toString();
          String re = h1.elementAt(i+6).toString();
          MailIndex index = new MailIndex(id, fo, su, fr, to, da, re);
          mailIndexVector.addElement(index);
        Vector h2 = myReader.read("Filter.4on");
        for(int j=0; j<h2.size(); j+=3){
          String fo = h2.elementAt(j).toString();
          String from = h2.elementAt(j+1).toString();
          String te = h2.elementAt(j+2).toString();
          FilterIndex index = new FilterIndex(fo, from, te);
          filterIndexVector.addElement(index);
        folderVector = myReader.read("Folder.4on");
        DefaultMutableTreeNode top, inbox, outbox, sentbox, trash;
        top = new DefaultMutableTreeNode("mails");
        top.add(inbox = new DefaultMutableTreeNode("Inbox"));
        for(int i=0; i<mailIndexVector.size(); i++){
          MailIndex m = (MailIndex)mailIndexVector.elementAt(i);
          if (m.folder.equals("Inbox"))
            inbox.add(new DefaultMutableTreeNode(m));
        top.add(outbox = new DefaultMutableTreeNode("Outbox"));
        for(int i=0; i<mailIndexVector.size(); i++){
          MailIndex m = (MailIndex)mailIndexVector.elementAt(i);
          if (m.folder.equals("Outbox")){
            outbox.add(new DefaultMutableTreeNode(m));
        top.add(sentbox = new DefaultMutableTreeNode("Sentbox"));
        for(int i=0; i<mailIndexVector.size(); i++){
          MailIndex m = (MailIndex)mailIndexVector.elementAt(i);
          if (m.folder.equals("Sentbox"))
            sentbox.add(new DefaultMutableTreeNode(m));
        for(int j=0; j<folderVector.size(); j++){
          top.add(trash =
          new DefaultMutableTreeNode(folderVector.elementAt(j).toString()));
          for(int i=0; i<mailIndexVector.size(); i++){
            MailIndex m = (MailIndex)mailIndexVector.elementAt(i);
            if (m.folder.equals(folderVector.elementAt(j).toString()))
              trash.add(new DefaultMutableTreeNode(m));
        tree = new JTree(top);
        tree.getSelectionModel().setSelectionMode
        (TreeSelectionModel.SINGLE_TREE_SELECTION);
        tree.addTreeSelectionListener(new myTreeSelectionListener());
        treeScroll = new JScrollPane(tree);
        treeScroll.setFont(new Font("Monospaced",Font.PLAIN,6));
        baum.add("Center", treeScroll);
        MainMenu menuBar = new MainMenu(this, this);
        setJMenuBar(menuBar);
        setVisible(true);
      public void mailsFetcher() {
        myLetterman = new Letterman(this, mySetup);
        myLetterman.start();
      public void treeNewSign(){
        trae.remove(treeScroll);
        DefaultMutableTreeNode top, inbox, outbox, sentbox, trash;
        top = new DefaultMutableTreeNode("mails");
        top.add(inbox = new DefaultMutableTreeNode("Inbox"));
        for(int i=0; i<mailIndexVector.size(); i++){
          MailIndex m = (MailIndex)mailIndexVector.elementAt(i);
          if (m.folder.equals("Inbox"))
            inbox.add(new DefaultMutableTreeNode(m));
        top.add(outbox = new DefaultMutableTreeNode("Outbox"));
        for(int i=0; i<mailIndexVector.size(); i++){
          MailIndex m = (MailIndex)mailIndexVector.elementAt(i);
          if (m.folder.equals("Outbox"))
            outbox.add(new DefaultMutableTreeNode(m));
        top.add(sentbox = new DefaultMutableTreeNode("Sentbox"));
        for(int i=0; i<mailIndexVector.size(); i++){
          MailIndex m = (MailIndex)mailIndexVector.elementAt(i);
          if (m.folder.equals("Sentbox"))
            sentbox.add(new DefaultMutableTreeNode(m));
        for(int j=0; j<folderVector.size(); j++){
          top.add(trash =
          new DefaultMutableTreeNode(folderVector.elementAt(j).toString()));
          for(int i=0; i<mailIndexVector.size(); i++){
            MailIndex m = (MailIndex)mailIndexVector.elementAt(i);
            if (m.folder.equals(folderVector.elementAt(j).toString()))
              trash.add(new DefaultMutableTreeNode(m));
        tree = new JTree(top);
        tree.getSelectionModel().setSelectionMode
        (TreeSelectionModel.SINGLE_TREE_SELECTION);
        tree.addTreeSelectionListener(new myTreeSelectionListener());
        treeScroll = new JScrollPane(tree);
        trae.add("Center", treeScroll);
        trae.repaint();
        setVisible(true);
      public void menuNewSign(){
        setJMenuBar(new MainMenu(this, this));
        setVisible(true);
      public String fromFilter (String t){
        String myFrom = "";
        int start, end;
        int a = t.indexOf("From:");
        if (a != -1){
          start = a + 6;
          ende = t.indexOf("\n",start);
          myFrom = t.substring(start,end);
        return myFrom;
      public String toFilter (String t){
        String myTo = "";
        int start, e1, e2, end;
        int a = t.indexOf("To:");
        if (a != -1){
          start = a + 4;
          end = t.indexOf("\n",start);
          myTo = t.substring(start,end);
          e1 = end + 1;
          if(t.substring(e1,e1+1).equals(" ")){
            while(t.substring(e1,e1+1).equals(" ")){
              while(t.substring(e1,e1+1).equals(" "))
                e1++;
              e2 = t.indexOf("\n",e1);
              myTo += " " + t.substring(e1,e2);
              e1 = e2 + 1;
        return myTo;
      public String dateFilter (String t){
        String myDate = "";
        int start, end;
        int a = t.indexOf("Date:");
        if (a != -1){
          start = a + 6;
          end = t.indexOf("\n",start);
          myDate = t.substring(start,end);
        return myDate;
      public String subjectFilter (String t){
        String mySubject = "";
        int start, end;
        int a = t.indexOf("Subject:");
        if (a != -1){
          start = a + 9;
          end = t.indexOf("\n",start);
          mySubject = t.substring(start,end);
        return mySubject;
      public String mailFilter (String t){
        String myMail = "";
        int start = 0, end = t.length();
        start = t.indexOf("\n\n") + 2;
        if (start != 1){
          int a = t.indexOf("\n\n" ,start);
          if (a != -1){
            if (t.indexOf(".",a+2) == a+2)
              if (t.indexOf("\n",a+3) == a+3)
                start = a;
          myMail = t.substring(start,end);
        return myMail;
      public void mailsRemark(String file){
        String mail = "", t = "";
        Vector mailVector = myReader.read(file);
        for (int i=0; i<mailVector.size(); i++)
          t += (String)mailVector.elementAt(i) + "\n";
        from = fromFilter(t);
        subject = subjectFilter(t);
        mailBody = mailFilter(t);
        mail += "Subject: " + subject + "\n";
        mail += "Date: " + dateFilter(t) + "\n";
        mail += "From: " + from + "\n";
        mail += "To: " + toFilter(t) + "\n";
        mail += "\n" + mailBody;
        if(viewSource == true)
          ta.setText(t);
        else
          ta.setText(mail);
      public synchronized void mails(String t){
        Status myStatus = new Status(this,t);
        myStatus.start();
      public void delete(){
        if(tree.getLastSelectedPathComponent() != null){
          DefaultMutableTreeNode node =
              (DefaultMutableTreeNode)tree.getLastSelectedPathComponent();
          if(node.isLeaf()){
            Object nodeInfo = node.getUserObject();
            if(nodeInfo instanceof MailIndex){
              MailIndex index = (MailIndex)nodeInfo;
              mailIndexVector.removeElement(index);
              int count = 0;
              for(int j=0; j<mailIndexVector.size(); j++){
                MailIndex index1 = (MailIndex)mailIndexVector.elementAt(j);
                String id = index1.mailId;
                if(id.equals(index.mailId))
                  count++;
              if(count == 0){
                File home = new File(".");
                String mailsRemark = "." + home.separator + "data";
                File datei = new File(mailsRemark, index.mailId);
                datei.delete();
              treeNewSign();
              menuNewSign();
            else{
              String t = (String)nodeInfo;
              boolean toDelete = false;
              for (int i=0; i<folderVector.size(); i++){
                if(folderVector.elementAt(i).equals(t)){
                  folderVector.removeElement(t);
                  konnteLoeschen = true;
              if(toDelete == false){
                message("This folder can not be deleted!");
              treeNewSign();
          else
            message("Folder is not Empty! Please delete Your mails.");
        else
          message("No Mails where selected to be deleted!");
      public void forward(){
        if(from != null){
          creatorOeffnen();
          myCreator.tfSb.setText("Fwd to: " + subject);
          myCreator.ta.setText("<" + from + ">" + " wrote:\n\n" + mailBody +
                               "\n\n>\n>\n\n");
      public void reply(){
        if(from != null){
          creatorOeffnen();
          myCreator.tfTo.setText(from);
          myCreator.tfSb.setText("Reply to: " + subject);
          myCreator.ta.setText("<" + from + ">" + " wrote:\n\n" + mailBody +
                               "\n\n>\n>\n\n");
      public void end(){
        String h = "";
        for (int i=0; i<mailIndexVector.size(); i++){
          MailIndex index = (MailIndex)mailIndexVector.elementAt(i);
          h += index.mailId + "\n";
          h += index.folder + "\n";
          h += index.subject + "\n";
          h += index.from + "\n";
          h += index.to + "\n";
          h += index.date + "\n";
          h += index.read + "\n";
        myWriter.writer(h,"Summary.4on");
        String w = "";
        for (int l=0; l<filterIndexVector.size(); l++){
          FilterIndex index = (FilterIndex)filterIndexVector.elementAt(l);
          w += index.folder + "\n";
          w += index.from + "\n";
          w += index.text + "\n";
        myWriter.write(w,"Filter.4on");
        String k = "";
        for(int j=0; j<folderVector.size(); j++)
          k += folderVector.elementAt(j).toString() + "\n";
        myWriter.writer(k,"Folder.4on");
        String t = "";
        for (int l=0; l<myAddressBook.addressIndexVector.size(); l++){
          AddressIndex aindex =
                   (AddressIndex)myAdressBook.adressIndexVector.elementAt(l);
          t += aindex.alias + "\n";
          t += aindex.email + "\n";
        myWriter.write(t,"Address.4on");
        setVisible(false);
        dispose();
        System.exit(0);
      public void filterOpen(){
        boolean test = false;
        if(tree.getLastSelectedPathComponent() != null){
          DefaultMutableTreeNode node =
              (DefaultMutableTreeNode)tree.getLastSelectedPathComponent();
          Object nodeInfo = node.getUserObject();
          if(nodeInfo instanceof String){
            myFilter.folder = (String)nodeInfo;
            for(int i=0; i<filterIndexVector.size(); i++){
              FilterIndex h = (FilterIndex)filterIndexVector.elementAt(i);
              if(h.folder.equals(nodeInfo)){
                myFilter.index = h;
                test = true;
                if(h.from.equals("")){
                  myFilter.box1 = false;
                  myFilter.fTf.setText("");
                  myFilter.fBox.setSelected(false);
                  myFilter.fTf.setEditable(false);
                else{
                  myFilter.box1 = true;
                  myFilter.fTf.setText(h.from);
                  myFilter.fBox.setSelected(true);
                  myFilter.fTf.setEditable(true);
                if(h.text.equals("")){
                  myFilter.box2 = false;
                  myFilter.tTf.setText("");
                  myFilter.tBox.setSelected(false);
                  myFilter.tTf.setEditable(false);
                else{
                  myFilter.box2 = true;
                  myFilter.tTf.setText(h.text);
                  myFilter.tBox.setSelected(true);
                  myFilter.tTf.setEditable(true);
                break;
          myFilter.setVisible(true);
          myFilter.fBox.requestFocus();
        else
          meldung("No selection");
      public void sendOutbox(){
        fromOutbox = true;
        int i;
        Block1:
        for(i=0; i<mailIndexVector.size(); i++){
          MailIndex index = (MailIndex)mailIndexVector.elementAt(i);
          if(index.folder.equals("Outbox")){
            Vector mailVector = myReader.read(index.mailId);
            Block2:
            for(int j=0; j<mailVector.size(); j++){
              String m = (String)mailVector.elementAt(j);
              if(m.indexOf("Subject:") != -1){
                for(int k=0; k<=j+1; k++){
                  mailVector.removeElementAt(0);
                break Block2;
            Vector toVector = new Vector();
            int tEnd = 1;
            String line = "";
            String t = index.to;
            while (tEnd != -1){
              tEnd = t.indexOf(", ");
              if (tEnd == -1)
                line = t;
              else
                line = t.substring(0,tEnd);
              t = t.substring(tEnd + 1);
              toVector.addElement(line);
            File home = new File(".");
            String mailsVerzeichnis = "." + home.separator + "data";
            File datei = new File(mailsRemark, index.mailId);
            datei.delete();
            mySendman = new Sendman(mailVector, toVector, index.subject,ailsAnzeig, mySetup, this);
            mySendman.start();
            mailIndexVector.removeElement(index);
            break Block1;
        if(i == mailIndexVector.size())
          fromOutbox = false;
        treeNewSign();
      public void partion(String cmd){
        if(tree.getLastSelectedPathComponent() != null){
          DefaultMutableTreeNode node =
              (DefaultMutableTreeNode)tree.getLastSelectedPathComponent();
          Object nodeInfo = node.getUserObject();
          if(nodeInfo instanceof MailIndex){
            MailIndex index = (MailIndex)nodeInfo;
            index.folder = cmd.substring(13).toString();
            treeNewSign();
        else
          meldung("No mails to partion!");
      public void SetupOpen(){
        if (mySetup.savePassword == false)
          mySetup.pTf.setText("");
        mySetup.setVisible(true);
        mySetup.aTf.requestFocus();
      public void addressbookOpen(){
        myAddressBook.setVisible(true);
        myAdressBook.tree.requestFocus();
      public void creatorOpen(){
        myCreator.setVisible(true);
        myCreator.tfTo.requestFocus();
      public void actionPerformed(ActionEvent event){
        Object obj = event.getSource();
        if (obj instanceof JMenuItem){
          String cmd = event.getActionCommand();
          if (cmd.equals("New fetched")){
            mailsfetch();
          else if (cmd.equals("Written new mails")) {
            creatorOpen();
          else if (cmd.equals("Reply")) {
            reply();
          else if (cmd.equals("Forward")) {
            forward();
          else if (cmd.equals("Outbox")) {
            sendOutbox();
          else if (cmd.equals("Delete")) {
            delete();
          else if ((cmd.length() >13) &&
                   (cmd.substring(0,13).equals("Sorting-"))){
            sorting(cmd);
          else if (cmd.equals("Using Addressbook")){
            addressbookOpen();
          else if (cmd.equals("Filter working")){
            filterOpen();
          else if (cmd.equals("New Order")){
            myFixTask.tf.setText("");
            myFixTask.setVisible(true);
            myFixTask.tf.requestFocus();
          else if (cmd.equals("delete")){
            delete();
          else if ((cmd.length() >7) &&
                   (cmd.substring(0,7).equals("nobody"))){
            if(viewSource == false){
              viewSource = true;
              menuNewSign();
              if(tree.getLastSelectedPathComponent() != null){
                DefaultMutableTreeNode node =
                    (DefaultMutableTreeNode)tree.getLastSelectedPathComponent();
                Object nodeInfo = node.getUserObject();
                if(nodeInfo instanceof MailIndex){
                  MailIndex index = (MailIndex)nodeInfo;
                  mailsRemark(index.mailId);
            else{
              viewSource = false;
              menuNeuZeichnen();
              if(tree.getLastSelectedPathComponent() != null){
                DefaultMutableTreeNode node =
                    (DefaultMutableTreeNode)tree.getLastSelectedPathComponent();
                Object nodeInfo = node.getUserObject();
                if(nodeInfo instanceof MailIndex){
                  MailIndex index = (MailIndex)nodeInfo;
                  mailsRemark(index.mailId);
          else if (cmd.equals("Setup")){
            SetupOpen();
        else if (obj instanceof JButton){
          String cmd = event.getActionCommand();
          if (cmd.equals("aga")){
            mailsHolen();
          else if (cmd.equals("Creator Open")){
            creatorOpem();
          else if(cmd.equals("rep")){
            reply();
          else if(cmd.equals("fwd")){
            forward();
          else if(cmd.equals("Setup Open")){
            SetupOpen();
          else if(cmd.equals("adr")){
            addressbookOpen();
          else if(cmd.equals("delete")){
            delete();
          else if(cmd.equals("Information")){
            myInfo.setVisible(true);
            myInfo.b.requestFocus();
      private class myWindowListener extends WindowAdapter{
        public void windowClosing(WindowEvent event){
          end();
      private class myTreeSelectionListener implements TreeSelectionListener{
        public void valueChanged(TreeSelectionEvent e) {
          DefaultMutableTreeNode node =
              (DefaultMutableTreeNode)(e.getPath().getLastPathComponent());
          Object nodeInfo = node.getUserObject();
          if(nodeInfo instanceof MailIndex){
            MailIndex index = (MailIndex)nodeInfo;
            mailsAnzeigen(index.mailId);
            index.read = "Yes";
    }

  • Re: and Fwd: in Email Subject

    Is there any way to prevent the Re: and Fwd: from being added in front of the text in an email subject when an email is reply to or forwarded?
    Solved!
    Go to Solution.

    No, it is automatically added and can be edited out if you choose.
    But there is not an option to not have it.
    1. If any post helps you please click the below the post(s) that helped you.
    2. Please resolve your thread by marking the post "Solution?" which solved it for you!
    3. Install free BlackBerry Protect today for backups of contacts and data.
    4. Guide to Unlocking your BlackBerry & Unlock Codes
    Join our BBM Channels (Beta)
    BlackBerry Support Forums Channel
    PIN: C0001B7B4   Display/Scan Bar Code
    Knowledge Base Updates
    PIN: C0005A9AA   Display/Scan Bar Code

  • [Fwd: Client accessing MBeanHome for more than one domain receives SecurityException]

    Fwd'ing to security newsgroup
    -------- Original Message --------
    Subject: Client accessing MBeanHome for more than one domain receives
    SecurityException
    Date: 4 Mar 2004 07:27:33 -0800
    From: Dinesh Bhat <[email protected]>
    Reply-To: Dinesh Bhat <[email protected]>
    Organization: BEA NEWS SITE
    Newsgroups: weblogic.developer.interest.management
    Hi,
    When a client accesses MBeans of more than one domains (Weblogic 8.1)
    that have
    different passwords, it receives a SecurityException. This occurs when
    the MBeanHome
    for each domain is looked up at initialization and reused for each
    request ( to
    access MBeans ). The security exception does not occur if the MBeanHome
    for each
    domain is looked up for each request. On initial review, this behavoir
    seems inconsistent.
    Looking up the MBeanHome for each request may introduce a significant
    overhead.
    I am not sure if concurrent lookups would also cause the same problem.
    I have read on another post that we can work around this problem by
    establishing
    a trust relationship between the servers, but this may not be feasible
    when one
    is monitoring a lot of servers and the overhead of configuration may be
    an issue.
    I have attached code that can reproduce the problem.
    Please advise on the correct approach.
    Thanks
    Dinesh Bhat
    Panacya Inc.
    import java.util.ArrayList;
    import java.util.Set;
    import java.util.HashMap;
    import java.util.Iterator;
    import java.util.Hashtable;
    import javax.management.MBeanServer;
    import javax.naming.Context;
    import weblogic.jndi.Environment;
    import weblogic.management.MBeanHome;
    * This class reproduces the Security Exception that is caused when a client tries to access
    * MBeans of more than one domain with different weblogic passwords. Here is the stacktrace of the
    * exception
    * java.lang.SecurityException: [Security:090398]Invalid Subject: principals=[weblogic, Administrators]
         at weblogic.rjvm.BasicOutboundRequest.sendReceive(BasicOutboundRequest.java:108)
         at weblogic.rmi.internal.BasicRemoteRef.invoke(BasicRemoteRef.java:138)
         at weblogic.management.internal.AdminMBeanHomeImpl_811_WLStub.getDomainName(Unknown Source)
         at WLSecurityTest.getWeblogicInfo(WLSecurityTest.java:140)
         at WLSecurityTest.runTest(WLSecurityTest.java:75)
         at WLSecurityTest.<init>(WLSecurityTest.java:66)
         at WLSecurityTest.main(WLSecurityTest.java:51)
         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
         at java.lang.reflect.Method.invoke(Method.java:324)
         at com.intellij.rt.execution.application.AppMain.main(Unknown Source)
    Caused by: java.lang.SecurityException: [Security:090398]Invalid Subject: principals=[weblogic, Administrators]
         at weblogic.security.service.SecurityServiceManager.seal(SecurityServiceManager.java:682)
         at weblogic.rjvm.MsgAbbrevInputStream.getSubject(MsgAbbrevInputStream.java:181)
         at weblogic.rmi.internal.BasicServerRef.acceptRequest(BasicServerRef.java:814)
         at weblogic.rmi.internal.BasicServerRef.dispatch(BasicServerRef.java:299)
         at weblogic.rjvm.RJVMImpl.dispatchRequest(RJVMImpl.java:920)
         at weblogic.rjvm.RJVMImpl.dispatch(RJVMImpl.java:841)
         at weblogic.rjvm.ConnectionManagerServer.handleRJVM(ConnectionManagerServer.java:222)
         at weblogic.rjvm.ConnectionManager.dispatch(ConnectionManager.java:794)
         at weblogic.rjvm.t3.T3JVMConnection.dispatch(T3JVMConnection.java:570)
         at weblogic.socket.NTSocketMuxer.processSockets(NTSocketMuxer.java:105)
         at weblogic.socket.SocketReaderRequest.execute(SocketReaderRequest.java:32)
         at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:197)
         at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:170)
    * Note: the exception is caused only when the MBeanHome for each domain is cached and used for subsequent
    * transactions. The exception does not occur if the MBeanHome for each domain is looked up for each transaction. This
    * would significant overhead in practice. Also the transactions across the various domains occurs serially, hence
    * the effect of concurrent lookups has to be tested.
    * Usage:
    * This class has been tested with weblogic 8.1
    * The class needs weblogic.jar in its classpath
    * One can specify the weblogic details as System properties. The properties need to be specified in
    * the following format:
    * wls.host.n, wls.userId.n, wls.password.n where n is the weblogix instance number. Also specify
    * the boolean system property reconnect.each.iteration to toggle between reconnecting or not reconnecting
    * for each iteration. When not reconnecting for each iteration, the MBeanHome is reused and the Security Exception
    * occurs.
    * Following is the example of system properties
    * -Dwls.host.0=localhost:7001 -Dwls.userId.0=weblogic -Dwls.password.0=weblogic
    * -Dwls.host.1=localhost:7011 -Dwls.userId.1=weblogic -Dwls.password.1=weblogic1
    * -Dwls.host.2=localhost:7021 -Dwls.userId.2=weblogic -Dwls.password.2=weblogic2
    * -Dreconnect.each.iteration=false
    public class WLSecurityTest
    ArrayList wlsDetailsList = new ArrayList();
    HashMap connectionMap = new HashMap();
    public static void main(String[] args)
    try
    WLSecurityTest wlSecurityTest = new WLSecurityTest();
    catch (Exception e)
    e.printStackTrace();
    * Constructor
    * @throws Exception
    public WLSecurityTest() throws Exception
    int noOfTries = 10;
    getWLSDetails();
    for( int i=0; i <= noOfTries; i++)
    runTest();
    * Runs the test
    private void runTest()
    for (int i = 0; i < wlsDetailsList.size(); i++)
    WLSDetails wlsDetails = (WLSDetails) wlsDetailsList.get(i);
    getWeblogicInfo(wlsDetails);
    * Get Weblogic details from System properties
    * @throws Exception
    private void getWLSDetails() throws Exception
    wlsDetailsList = new ArrayList();
    String hostKeyTmpl = "wls.host";
    String userIdKeyTmpl = "wls.userId";
    String passwordKeyTmpl = "wls.password";
    boolean done = false;
    for (int i = 0; !done; i++)
    WLSDetails wlsDetails = new WLSDetails();
    String hostKey = hostKeyTmpl + "." + Integer.toString(i);
    String userIdKey = userIdKeyTmpl + "." + Integer.toString(i);
    String passwordKey = passwordKeyTmpl + "." + Integer.toString(i);
    wlsDetails.hostName = System.getProperty(hostKey);
    done = (wlsDetails.hostName == null) || (wlsDetails.hostName.length() == 0);
    if (!done)
    wlsDetails.userId = System.getProperty(userIdKey);
    wlsDetails.password = System.getProperty(passwordKey);
    connect(wlsDetails);
    wlsDetailsList.add(wlsDetails);
    * Lookup the MBeanHome for the specified weblogic server
    * @param wlsDetails
    * @throws Exception
    public synchronized void connect(WLSecurityTest.WLSDetails wlsDetails) throws Exception
    Context ctx = null;
    MBeanHome mbHomeLocal = null;
    try
    Environment env = new Environment();
    env.setProviderUrl("t3://" + wlsDetails.hostName);
    env.setSecurityPrincipal(wlsDetails.userId);
    env.setSecurityCredentials(wlsDetails.password);
    Hashtable hashtable = env.getProperties();
    System.out.println(hashtable.toString());
    ctx = env.getInitialContext();
    wlsDetails._mBeanHome = (MBeanHome) ctx.lookup(MBeanHome.ADMIN_JNDI_NAME);
    catch (Exception e)
    e.printStackTrace();
    * Gets weblogic information using MBeans
    * @param wlsDetails
    public synchronized void getWeblogicInfo(WLSDetails wlsDetails)
    try
    boolean reconnectEachIteration =
    Boolean.getBoolean("reconnect.each.iteration");
    if( (reconnectEachIteration) || ((wlsDetails._mBeanHome == null) && (!reconnectEachIteration) ))
    connect(wlsDetails);
    MBeanHome mbHomeLocal = wlsDetails._mBeanHome;
    String domainName = mbHomeLocal.getDomainName();
    Set allMBeans = mbHomeLocal.getAllMBeans();
    System.out.println("Size: " + allMBeans.size());
    Set clusterMBeans = mbHomeLocal.getMBeansByType("Cluster", domainName);
    System.out.println(clusterMBeans);
    MBeanServer mBeanServer = mbHomeLocal.getMBeanServer();
    catch (Exception ex)
    ex.printStackTrace();
    * Class that holds weblogic server details
    class WLSDetails
    String hostName = "";
    String userId = "";
    String password = "";
    MBeanHome _mBeanHome = null;

    If Server version is 61.
    Make user "system" password of all weblogic servers same.
    If Server version above 61(70,81)
    In the Security Advanced Settings un check generated credential and specify a common credentail for all the weblogic servers(domains).

  • RE: (forte-users) (Fwd) ODBC & Dynamically Choosing aDatabase Ve ndor

    The error you are getting is saying that the data source is not correctly
    specified. Make sure the data source(or the name of the ODBC driver you
    created) is correctly specified in your code.
    ka
    -----Original Message-----
    From: Duncan Kinnear [mailto:[email protected]]
    Sent: Sunday, December 19, 1999 6:26 PM
    To: [email protected]
    Subject: (forte-users) (Fwd) ODBC & Dynamically Choosing a Database
    Vendor
    I am trying to dynamically create a DBSession to connect to the
    Microsft SQL Server ODBC Driver on a Forte Server Node.
    I have tested the ODBC connection on the Local Machine and it works fine.
    I have connected to the SQL Server on that machine with a Static
    DBSession Object and that works fine.
    I have used the same code to create a DBSession to Informix on Unix
    and that worked fine.
    The error I get is a converted ODBC one:
    SYSTEM ERROR: Attempt to load partition named TestWinProject_cl0_Part1
    failed.
    Class: qqsp_ResourceException
    Error #: [1001, 4]
    Detected at: qqrt_ForteExecAgent::LoadPartition at 2
    Error Time: Mon Dec 20 12:05:37
    Distributed method called: qqrt_ForteExecAgentProxy.LoadPartition!7
    (object name Unnamed) from partition "Node Manager", (partitionId =
    40114BC0-B0FC-11D3-B4D6-E87D6941AA77:0x11c, taskId =
    [40114BC0-B0FC-11D3-B4D6-E87D6941AA77:0x11c.38]) in application
    "System
    Manager", pid 250 on node ALLY in environment testenv
    Exception occurred (remotely) on partition "Forte_Executor",
    (partitionId
    = 40114BC0-B0FC-11D3-B4D6-E87D6941AA77:0x11e, taskId =
    [40114BC0-B0FC-11D3-B4D6-E87D6941AA77:0x11e.22]) in application
    "TestWinProject_cl0", pid 235 on node ALLY in environment TestEnv.
    SYSTEM ERROR: Failed to create service object TestDataProject.TestService.
    Class: qqsp_ResourceException
    Last TOOL statement: method TestServiceMgr.
    Error Time: Mon Dec 20 12:05:37
    Exception occurred (remotely) on partition "Forte_Executor",
    (partitionId
    = 40114BC0-B0FC-11D3-B4D6-E87D6941AA77:0x11e, taskId =
    [40114BC0-B0FC-11D3-B4D6-E87D6941AA77:0x11e.22]) in application
    "TestWinProject_cl0", pid 235 on node ALLY in environment TestEnv.
    USER ERROR: (This error was converted)
    Failed to connect to database: ForteSQLServer , username: justin .
    [Microsoft][ODBC Driver Manager] Data source name not found and no
    default
    driver specified
    Class: qqdb_RemoteAccessException with ReasonCode:
    DB_ER_DBMSCONNECTION
    DBMS SQLSTATE: IM002
    Class: qqsp_ErrorDescriptor
    Detected at: qqdb_OdbcVendorInfo::DoSQLConnect at 10
    Last TOOL statement: method ServiceMgr.SetDBSession
    Error Time: Mon Dec 20 12:05:37
    Exception occurred (remotely) on partition "Forte_Executor",
    (partitionId
    = 40114BC0-B0FC-11D3-B4D6-E87D6941AA77:0x11e, taskId =
    [40114BC0-B0FC-11D3-B4D6-E87D6941AA77:0x11e.22]) in application
    "TestWinProject_cl0", pid 235 on node ALLY in environment TestEnv.
    Versions:
    SQL SERVER 6.5
    ODBC Driver SQL Server 2.65.0240
    ODBC Manager 3.0.28.22
    NT 4 sp4
    Forte 3.0.J.1
    The code I'm using is almost identical to that given in the "Dynamically
    Choosing a Database Vendor" section of the "Making a Database
    Connection" chapter of the "Accessing Databases" manual.
    Any suggestions would be greatly appreciated
    Thanks in advance.
    Cheers,
    Duncan Kinnear,
    McCarthy and Associates, Email:
    [email protected]
    PO Box 764, McLean Towers, Phone: +64 6 834 3360
    Shakespeare Road, Napier, New Zealand. Fax: +64 6 834 3369
    Providing Integrated Software to the Meat Processing Industry for over 10
    years
    For the archives, go to: http://lists.sageit.com/forte-users and use
    the login: forte and the password: archive. To unsubscribe, send in a new
    email the word: 'Unsubscribe' to: [email protected]

  • Re: Re: [Fwd: FindSO?]

    Geoff,
    Sean Brown mentioned that 3J has removed these limitations. To remove the
    limitations manually in any other 3.x prior to 3J, set the CFG:DO:17 flag.
    -Dustin
    From: Geoff Puterbaugh <[email protected]>
    Date: Thu, 17 Dec 1998 15:31:58 -0500
    Subject: Re: [Fwd: FindSO?]
    Sameer,
    You said that we can use the ObjectLocationMgr with
    Service Objects. That has not been my experience.
    In fact, I feel that the whole documentation section
    for the ObjectLocationMgr is missing the following:
    WARNING: This service may NOT be used to publish or
    find objects created by Forte. These all reside in
    the reserved name-space "/forte". This service may
    only be used to publish and find user-defined objects.
    But I am only speaking from one afternoon's experience
    a month or so back.
    All my best,
    Geoff
    To unsubscribe, email '[email protected]' with
    'unsubscribe forte-users' as the body of the message.
    Searchable thread archive <URL:http://pinehurst.sageit.com/listarchive/>

    Geoff,
    Sean Brown mentioned that 3J has removed these limitations. To remove the
    limitations manually in any other 3.x prior to 3J, set the CFG:DO:17 flag.
    -Dustin
    From: Geoff Puterbaugh <[email protected]>
    Date: Thu, 17 Dec 1998 15:31:58 -0500
    Subject: Re: [Fwd: FindSO?]
    Sameer,
    You said that we can use the ObjectLocationMgr with
    Service Objects. That has not been my experience.
    In fact, I feel that the whole documentation section
    for the ObjectLocationMgr is missing the following:
    WARNING: This service may NOT be used to publish or
    find objects created by Forte. These all reside in
    the reserved name-space "/forte". This service may
    only be used to publish and find user-defined objects.
    But I am only speaking from one afternoon's experience
    a month or so back.
    All my best,
    Geoff
    To unsubscribe, email '[email protected]' with
    'unsubscribe forte-users' as the body of the message.
    Searchable thread archive <URL:http://pinehurst.sageit.com/listarchive/>

  • Re: [Fwd: FindSO?]

    Hi Rick,
    You can use the Forte ObjectLocationMgr to dynamically register and bind
    to named, anchored objects (which may be service objects). The SCAFFOLDS
    2.0 RouteManager (Custom Router) uses this mechanism to determine the
    ExecutionManager (typically a service object) to route to, at run time.
    However, there are some issues that you need to consider before going
    with this approach. The primary disadvantage of not directly using a
    ServiceObject reference in Forte is that Forte failover only kicks in
    when you directly call out to a ServiceObject that is absent from the
    current environment. A direct call to the ServiceObject is also required
    at application startup of deployed applications if you do not pre-start
    your server partitions.
    The SCAFFOLDS custom routing mechanism accounts for all these issues
    while still providing you with the dynamic ServiceObject determination
    that you are looking for. You can provide the routing rules by either
    using one of the RouteModules out of the box, or by writing your own
    RouteModule.
    If you give some more details about your scenario, I will be happy to
    make further recommendations.
    Is there a way to get an object reference to a service object by
    name/string ?
    In a connectorHandler, I'm trying to dynamically connect to the partition
    of a Service Object wihtout having to hardcode a huge case statement and
    know a compile time all possible SO's. Thanks in advance.
    Rick Vaillancourt
    Novalis Corporation
    Sameer Vaidya
    SCAFFOLDS Engineer
    Sage IT Partners
    To unsubscribe, email '[email protected]' with
    'unsubscribe forte-users' as the body of the message.
    Searchable thread archive <URL:http://pinehurst.sageit.com/listarchive/>

    As of release 3J there is an easier way to do this that used to be hidden.
    I am hoping that the uncovering of this functionality was on purpose and not
    by accident meaning it may go away later!? But, it is now possible to use
    the name service to look up a service object directly. This used to require
    setting an unsupported configuration flag but appears to no longer require
    this.
    You use bindobject as you would with a named anchored object but supply the
    path to your service object. The path is in the form:
    'site/ServerProjectName_cl#/ApplicationName_cl#-ServiceName'
    Using this method, fail-over and load balancing will worked as advertised!
    This is not the case when you bind to a named anchored object.
    One catch is that the service can only be found under the name above when it
    has actually been deployed. The path is different when you are running from
    the workshops. I am assuming that direct binding will work in that
    circumstance as well as long as you provide the correct path. However, I
    have not tested it.
    Hope this helps!
    Sean
    Cornice Consulting Inc.
    mailto:[email protected]
    -----Original Message-----
    From: [email protected]
    [<a href="mailto:[email protected]">mailto:[email protected]]On</a> Behalf Of Sameer Vaidya
    Sent: Thursday, December 17, 1998 12:02 PM
    To: [email protected]
    Cc: Tim E. Hall; [email protected]; [email protected]
    Subject: Re: [Fwd: FindSO?]
    Hi Rick,
    You can use the Forte ObjectLocationMgr to dynamically register and bind
    to named, anchored objects (which may be service objects). The SCAFFOLDS
    2.0 RouteManager (Custom Router) uses this mechanism to determine the
    ExecutionManager (typically a service object) to route to, at run time.
    However, there are some issues that you need to consider before going
    with this approach. The primary disadvantage of not directly using a
    ServiceObject reference in Forte is that Forte failover only kicks in
    when you directly call out to a ServiceObject that is absent from the
    current environment. A direct call to the ServiceObject is also required
    at application startup of deployed applications if you do not pre-start
    your server partitions.
    The SCAFFOLDS custom routing mechanism accounts for all these issues
    while still providing you with the dynamic ServiceObject determination
    that you are looking for. You can provide the routing rules by either
    using one of the RouteModules out of the box, or by writing your own
    RouteModule.
    If you give some more details about your scenario, I will be happy to
    make further recommendations.
    Is there a way to get an object reference to a service object by
    name/string ?
    In a connectorHandler, I'm trying to dynamically connect to thepartition
    of a Service Object wihtout having to hardcode a huge case statement and
    know a compile time all possible SO's. Thanks in advance.
    Rick Vaillancourt
    Novalis Corporation
    Sameer Vaidya
    SCAFFOLDS Engineer
    Sage IT Partners
    To unsubscribe, email '[email protected]' with
    'unsubscribe forte-users' as the body of the message.
    Searchable thread archive <URL:<a href=
    "http://pinehurst.sageit.com/listarchive/">http://pinehurst.sageit.com/listarchive/</a>>
    >
    To unsubscribe, email '[email protected]' with
    'unsubscribe forte-users' as the body of the message.
    Searchable thread archive <URL:<a href=
    "http://pinehurst.sageit.com/listarchive/">http://pinehurst.sageit.com/listarchive/</a>>

  • Re: (forte-users) Session management for page builder(fwd)

    Jaco,
    Hope this helps,
    John
    John Soper, Information Systems Development, ITS, The University of Melbourne
    email: j.soperits.unimelb.edu.au >>>> Tel: 9344 5612---------- Forwarded message ----------
    Date: Mon, 10 Jan 2000 16:34:31 +1100
    From: Lyle Winton <L.Wintonits.unimelb.edu.au>
    To: John Soper <j.soperits.unimelb.edu.au>
    Subject: Re: (forte-users) Session management for page builder (fwd)
    Why not construct an intermediate page after the
    login page that has SESSION_UNSPECIFIED and
    a refresh META tag. The page can then refresh
    to either the login failed or login succeeded pages
    depending on how the login went! Looks like...
    1) Login page (SESSION_UNSPECIFIED)
    2A) Refresh page (SESSION_UNSPECIFIED)
    < HTML >
    < HEAD >
    < META http-equiv="refresh"
    content="0;URL=<a href=
    "http://www.blah.com/forte.cgi?PageName=3">http://www.blah.com/forte.cgi?PageName=3</a>" >
    < /HEAD >
    < BODY >
    Login succeeded. Please wait...
    < /BODY >
    < /HTML >
    2B) Refresh page (SESSION_UNSPECIFIED)
    < HTML >
    < BODY >
    Login failed.
    < /BODY >
    < /HTML >
    3) We're finally in. (SESSION_REQUIRED)
    I'm not sure if this works on internet exploder.
    Lyle.
    John Soper wrote:
    Lyle,
    (Post from forte mailing group)
    Does this make sense to you?
    John
    John Soper, Information Systems Development, ITS, The University of Melbourne
    email: j.soperits.unimelb.edu.au >>>> Tel: 9344 5612---------- Forwarded message ----------
    Date: Thu, 30 Dec 1999 07:54:24 +0200
    From: "Jaco Erasmus (home)" <jacoerasmweb.co.za>
    To: kamranaminyahoo.com
    Subject: (forte-users) Session management for page builder
    Hi everybody,
    We have a lot of legacy code making use of the page builder service to
    produce web pages. These pages were originally written without session
    management. I'm now busy adding session management to them, but there is
    one problem with this approach and I will appreciate if someone can shed
    some light on it. Here it is:
    Page one is submitted.
    Some validation (authentication) takes place and depending on the outcome,
    either page 2A (SESSION_REQUIRED) or 2B (error page with
    SESSION_UNSPECIFIED) must be displayed. In order to implement this, I
    needed a place to make a decision. The way I've done it, is to pass a
    'virtual page' (SESSION_UNSPECIFIED) to the page builder service. The
    validation is done here and request.PageName is then replaced with the
    PageName of pages 2A or 2B. The HandleRequest() method is then called
    again. The problem is that the ValidateSession() method does not get
    invoked again, thus allowing 2A through without a session. How do I make
    sure that the ValidateSession() method get invoked again?
    The approach making use of templates look to me as if it has all the means
    to do this (redirect tag), but I don't want to rewrite everything if I
    don't have to. Is there a way that a pagebuilder page can be specified by
    the redirect tag? This will definitely help, but so far I've only managed
    to call templates from the redirect tag.
    Is the template approach better suited for session management? It is
    definetely better documented...
    Regards.
    Jaco
    For the archives, go to: http://lists.sageit.com/forte-users and use
    the login: forte and the password: archive. To unsubscribe, send in a new
    email the word: 'Unsubscribe' to: forte-users-requestlists.sageit.com

    Hi,
    i hope this helps
    http://help.sap.com/saphelp_nw70/helpdata/EN/7e/aa610cc1dd8f4388b1df02fc362f0f/frameset.htm
    http://help.sap.com/saphelp_nw70/helpdata/EN/69/c250754ba111d189750000e8322d00/frameset.htm
    regards,
    Anil.

  • Mail mismatch subject content

    I use an iPad2 with iOS 6.0.1 and I have the following trouble with Apple' mail app that occurs sometimes, but not always:
    When I browse deleted mails in the trash folder, I see the sender's name and subject in a list. If I select the mail, I see the body, i.e. the text.
    Now the problem: When I forward this mail, the receiver gets the body from some random other mail from the trash folder. But in the list, the mail I intended to forward, is displayed as forwarded. The copy in my sent mail folder shows the correct sender and subject, but the wrong text (the text that was actually sent).
    Here's an example to illustrate the problem:
    Suppose the following two mails have been deleted are are now in the trash folder:
    mail 1:
    sender: friend
    subject: party
    body: party at 8pm at my home
    mail2:
    sender: boss
    subject: meeting
    body: meeting at 2pm
    Suppose, I want to forward mail2 to a colleague, but I have already deleted it. Then I select mail2 in the trash folder (I see mail2 correctly displayed) and forward it to my colleague. What Apple mail actually sends is:
    sender: me
    subject: fwd: meeting
    body: party at 8pm at my home
    Has anyone advice on how to get rid of this problem?
    Thanks

    Never mind. A little more searching solved the problem.
    http://discussions.apple.com/thread.jspa?messageID=11969642&#11969642

  • Why is "[SPAM]" being added to the subject line on all my sent emails? see below

    [SPAM] Fwd: Help your friends recognize you

    Thunderbird does not use the word spam or modify subject lines. Look at your antivirus, and spam software or your providers spam filters.

  • Edit subject of incoming mails

    I would like to be able to edit the subject of an incoming post, and then save the edited version so that I can find it easier in future.
    The subject often bears no relation to a mail's contents, and can be a duplicate or fwd with a subject which is completely off-topic.
    Editing the subject and then saving it is possible with Eudora, but is it possible with Mail?
    If not, how can I suggest to the Leopard team to include it as an option.
    I don't care whether it is a regular feature or some kind of Applescript fix.
    Grateful for any ideas . . .
    Message was edited by: tksalvo

    No, not in a parallel universe. Checking google for 'eudora edit subject' there are many discussion posts from 1994 to 2005 eg
    'I did miss the ability to change the subject when I moved from Eudora to Apple Mail. Too many people use non-descriptive or missing subject lines.'
    from styrafome in 2005 on
    http://forums.macosxhints.com/archive/index.php/t-38615.html

  • Editing the subject of incoming emails

    I would like to be able to edit the subject of an incoming post, and then save the edited version so that I can find it easier in future.
    The subject often bears no relation to a mail's contents, and can be a duplicate or fwd with a subject which is completely off-topic.
    Editing the subject and then saving it is possible with Eudora (I believe), but is it possible with Mail?
    If not, how can I suggest to the Leopard team to include it as an option.
    I don't care whether it is a regular feature or some kind of Applescript fix.
    Grateful for any ideas . . .

    I swear that someday the lawyers will destroy everything that is logical in this country. I've been using Eudora for years and I can edit the subject line to reflect the e-mail's content to be relevant for ME, THE USER. The content can't be edited, so that should take care of any witch hunt that MIGHT occur someday.
    I switched to Mail to use it with my iPhone, but this single bone-headed "feature" renders Mail useless for me. I'm afraid to use Entourage because who knows how long MS will sell & support that product? I don't want webmail, because I want my e-mail stored on my Mac.
    What other options are out there that will work easily with the iPhone and fly under the lawers' radar?
    Thanks in advance,
    Rick
    TiBook 867 MHz   Mac OS X (10.4.10)  

  • How can I create a video clip that has multiple copies of the same subject playing at the same time?  Basically like one person became 50 backup dancers!

    Hello Everyone,
    I am trying to create a single video clip where my original subject (dancer) is multiplied on the screen many times.  Basically I am trying to create a background video for a dance team and want to make it look like an army of the same person dancing behind them.  Amy guidance would be great!
    Thanks
    Madisonman 2013

    Motion ($50) can do this with a replicator.
    Russ

  • How can I include the data from a field in the subject of the notification email?

    Instead of having a static subject line for each form response, I would like to have something like:
    Form Response Received from <<Name>>
    That way, each email would have a unique subject line and make it easier to use conversation view in my email.
    Thanks for any help you can provide.  I searched the documentation and couldn't find the answer.

    There is not a way to do that within the automated system-wide e-mailing of responses from the FormsCentral application.
    Doing a search in your e-mail, or setting up e-mail filters to separate/segregate e-mails into different folders (based on content or selections in the submissions) is a good way to extend functionality outside of FormsCentral.
    Brian

Maybe you are looking for

  • Unable to activate Transfer Structure for Generated Datasource in BW3.5

    HI Experts, We have a scenario where the data needs to moved from DSO A to Cube B we have clicked the Export datasource and created 8(ODS A) when created IP for this it gave us all selection in selection screen but we required only 3 Characters <br>

  • Re arrange control using Flow layout

    hi, I want to know how to re-arrange the postion of controls (say, buttons) when FlowLayout is used to layout the controls. Thanks, Mano

  • Logon failed for NSP  AND how to get  hard ware key

    Hello , I have searched my whole PC for sap license.exe for NSP..... It seems that this program was not delivered with the installation CD. Is there any way to get license.exe for NSP.........? I installed entire thing on SAP like DSPDB AND SQL studi

  • Need to write condition in reports.

    Hi Experts, Can you please clarify the below issue. In my report i've two fields called ADATE & BDATE.I want to wirte a condition or rule in front end...if ADATE>BDATE = C(EARLY) IF ADATE<BDATE = C(LATE). How to get this result in my report lavel.   

  • Storage of Contact Groups?

    I have a contact group named "all from My PC" in my iPhone. Where do I finde these contacts in my PC? Not in Outlook atleast.