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'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.comHi,
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. -
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?
ThanksNever mind. A little more searching solved the problem.
http://discussions.apple.com/thread.jspa?messageID=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: tksalvoNo, 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) -
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 2013Motion ($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.