Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Pro ENGINEER
  Jlink: 2 Applikationen in 1 Menü?

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Creo
Autor Thema:  Jlink: 2 Applikationen in 1 Menü? (1489 mal gelesen)
magic_halli
Mitglied



Sehen Sie sich das Profil von magic_halli an!   Senden Sie eine Private Message an magic_halli  Schreiben Sie einen Gästebucheintrag für magic_halli

Beiträge: 361
Registriert: 03.07.2006

WF2 M210 / WF3 M110
Linux Fedora C4
WinXP Pro
Java 1.6.0_06

erstellt am: 27. Sep. 2006 11:59    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo,

ich habe eine Applikation1, die beim ProE-Start geladen wird. Diese erzeugt ein separates Menü+Menübutton.
Jetzt will ich eine Applikation2 auch beim ProE-Start laden lassen und in das Menü von Applikation1 mit einem extra Menübutton einbinden.
Ich würde hierfür eine protk.dat im ProE-Startverzeichnis anlegen, in welcher erst alle Info´s zu Applikation1 und danach zu Applikation2 drinstehen.
Die Menü+Menübutton-Erzeugung ist in beiden Applikationen identisch (auch die buttonnames.txt)...

Code:

curSession.UIAddMenu("Menu", "Utilities", "buttonnames.txt", null);

pAssignNumber an = new pAssignNumber();
UICommand command = curSession.UICreateCommand ("myCommand", an);
curSession.UIAddButton (command, "Menu", null, "USER Button", "USER Message", "buttonnames.txt");



...bis auf die Tatsache, das ich in Applikation2 die kursive Zeile auskommentiert habe, weil ja das Menü schon von Applikation1 erzeugt wird - welche vorher geladen wird. Also sollte doch Applikation2 nur einen Menübutton in das bereits existierende Menü erstellen?!

Geht mein Vorhaben überhaupt umzusetzen bzw. muss ich evtl. anders vorgehen???
--> ich erhalte bei diesem Vorgehen einen ToolkitCommError!?


Gruß Rico.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

GüntherP
Mitglied
CAD Administrator / Konstrukteur


Sehen Sie sich das Profil von GüntherP an!   Senden Sie eine Private Message an GüntherP  Schreiben Sie einen Gästebucheintrag für GüntherP

Beiträge: 82
Registriert: 18.02.2005

HP xw4100
NVIDIA Quadro 980XGL<P>Wildfire 2.0 / 3.0
Intralink 3.4 F000
PDMLink 8.0 M030

erstellt am: 27. Sep. 2006 16:45    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für magic_halli 10 Unities + Antwort hilfreich

Hi,

wenn ich das richtig sehe, möchtest du das erreichen:

Menü
+ Menübutton1
+ Menübutton2

Das ganze würde ich mit einer Applikation machen, die mir das Menü erzeugt und dann die Menübuttons. Die Menübuttons starten dann deine Funktionen.
Wenn du mit beiden Applikationen das gleiche machst, wirst du auch mit beiden ein Menü erzeugen wollen. Das geht nicht. Ein Menü kann nur ein mal existieren. Du könntest nur in deiner Applikation2 den Menübutton an ein bestehendes Menü anhängen.
Das die Menübuttons nicht gleich benannt sein dürfen ist auch klar.
Gibt es einen speziellen Grund für die 2 Applikationen?

Gruß,
Günther

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

magic_halli
Mitglied



Sehen Sie sich das Profil von magic_halli an!   Senden Sie eine Private Message an magic_halli  Schreiben Sie einen Gästebucheintrag für magic_halli

Beiträge: 361
Registriert: 03.07.2006

WF2 M210 / WF3 M110
Linux Fedora C4
WinXP Pro
Java 1.6.0_06

erstellt am: 28. Sep. 2006 07:20    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Guten Morgen,

... genau das möchte ich erreichen!
Applikation1 erstellt mir ja schon:
Menü
+ Menübutton1

Jetzt soll Applikation2 einfach in dieses Menü den Menübutton2 hinzufügen und der ActionListener hinter diesem Button stehen. Ist mir auch alles vollkommen logisch.
Aber wie muss dann meine Klasse und Textdatei zum Erstellen des Menübutton2 aussehen???

So sehen diese bisher aus...
Funktion für Button:

Code:

...
public static void start() throws Exception {

        try {
       
            Session curSession = pfcGlobal.GetProESession();

            //diese Zeile erstellt das Menü - ist nur in Applikation1 enthalten
            //curSession.UIAddMenu("Menu", "Utilities", "buttonnames.txt", null);

            pAssignNumber an = new pAssignNumber();
            UICommand command = curSession.UICreateCommand ("myCommand", an);
            curSession.UIAddButton (command, "Menu", null, "USER Button", "USER Message", "buttonnames.txt");
           
        }catch(Exception err) {
        JOptionPane.showMessageDialog(null, err.toString());
        }

    }



zugehörige buttonnames.txt:
Code:

Menu
Jlink-Menu
#
#
USER Button
Sachnummern anordnen
#
#
USER Message
Sachnummern neu verteilen und Mengen ermitteln
#
#


Das bereits vorhandene Menü heißt übrigens Jlink-Menu.
Dann hab ich eine protk.dat, in der beide Applikationen vereinbart sind (Pfade usw.). Als erstes steht da Applikation1 drin, gefolgt von Applikation2, d.h. doch, dass App1 das Menü + Menübutton1 erstellt und App2 nur noch seinen Menübutton2 darin platzieren soll?!
Ich erhalte dann leider immer XToolkitCommError - wahrscheinlich wenn App2 versucht den Button einzufügen?!

Ich weiß nicht, was falsch sein soll bzw. wie hängt man sonst einen Menübutton an???

Gruß Rico.

[Diese Nachricht wurde von magic_halli am 28. Sep. 2006 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

GüntherP
Mitglied
CAD Administrator / Konstrukteur


Sehen Sie sich das Profil von GüntherP an!   Senden Sie eine Private Message an GüntherP  Schreiben Sie einen Gästebucheintrag für GüntherP

Beiträge: 82
Registriert: 18.02.2005

HP xw4100
NVIDIA Quadro 980XGL<P>Wildfire 2.0 / 3.0
Intralink 3.4 F000
PDMLink 8.0 M030

erstellt am: 28. Sep. 2006 07:44    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für magic_halli 10 Unities + Antwort hilfreich

Hallo,

du wirst wahrscheinlich 2 buttonnames.txt haben. Wenn ja, verwendest du in beiden txt Dateien "USER Button"? Wenn das sein sollte ändere in einer der beiden Dateien das ganz auf "USER Button1".
Der Text in dieser Zeile wird als interne Identifikation verwendet und kann nur 1x verwendet werden.

Zitat:

Menu
Jlink-Menu
#
#
USER Button
Sachnummern anordnen
#
#
USER Message
Sachnummern neu verteilen und Mengen ermitteln
#
#

Gruß,
Günther

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

magic_halli
Mitglied



Sehen Sie sich das Profil von magic_halli an!   Senden Sie eine Private Message an magic_halli  Schreiben Sie einen Gästebucheintrag für magic_halli

Beiträge: 361
Registriert: 03.07.2006

WF2 M210 / WF3 M110
Linux Fedora C4
WinXP Pro
Java 1.6.0_06

erstellt am: 28. Sep. 2006 08:05    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Habe in Applikation2 auf "USER Button2" geändert... geht immer noch nicht. Jetzt kommt als Fehlermeldung "XToolkitMsgNotFound"?!
Ich habe daraufhin auchmal das Label "USER Message" in "USER Message2" geändert - bringt aber weiterhin den gleichen Fehler 

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

magic_halli
Mitglied



Sehen Sie sich das Profil von magic_halli an!   Senden Sie eine Private Message an magic_halli  Schreiben Sie einen Gästebucheintrag für magic_halli

Beiträge: 361
Registriert: 03.07.2006

WF2 M210 / WF3 M110
Linux Fedora C4
WinXP Pro
Java 1.6.0_06

erstellt am: 28. Sep. 2006 10:31    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Idee:
Da ja schon ein Menü existiert und ich lediglich einen Menübutton2 hinzufügen will... muss ich da vielleicht bei der Buttonerstellung den Neighborbutton (also meinen Menübutton1, der ja schon existiert) mit angeben??? (an der fett gedruckten Stelle - optionaler Parameter)
Code:

curSession.UIAddButton (command, "Menu", null, "USER Button2", "USER Message", "buttonnames.txt");


Die Frage ist nur, wenn ja, WIE???
Ich hab schon diverse Schreibweisen probiert, aber ich bekomme immer wieder den Fehler: "XToolkitMsgNotFound"!

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

magic_halli
Mitglied



Sehen Sie sich das Profil von magic_halli an!   Senden Sie eine Private Message an magic_halli  Schreiben Sie einen Gästebucheintrag für magic_halli

Beiträge: 361
Registriert: 03.07.2006

WF2 M210 / WF3 M110
Linux Fedora C4
WinXP Pro
Java 1.6.0_06

erstellt am: 28. Sep. 2006 11:50    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

  Ich habe es endlich gelöst!!! 

In Applikation2 muss die Zeile für den Menübutton2 letztendlich so aussehen:

Code:

curSession.UIAddButton (command, "Menu", null, "USER Button2", "USER Message2", "buttonnames2.txt");


...wobei die Parameter folgende sein müssen:
1. Name vom UICommand
2. Name des Menü´s, welches von Applikation1 erstellt wird (Name ist hierbei allerdings das Label aus der buttonnames.txt von Applikation1)
3. Name des Labels des Nachbarbuttons im vorhandenen Menü oder null (geht beides)
4. Label für den Namen des Menübutton2 im akt. Messagefile (buttonnames2.txt bei mir)
5. Label der MouseOver-Message im akt. Messagefile
6. Name des akt. Messagfiles

zu beachten:
Ich habe festgestellt, dass ALLE Labels und der Name des akt. Messagefiles nicht gleich denen von Applikation1 sein dürfen!!! Also am Besten alle Bezeichnungen ändern!

Soviel dazu und vielen Dank für die Tips 


Gruß Rico.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Meister
Mitglied
Cad Anwendungsbetreuer


Sehen Sie sich das Profil von Meister an!   Senden Sie eine Private Message an Meister  Schreiben Sie einen Gästebucheintrag für Meister

Beiträge: 40
Registriert: 23.05.2001

Dell Precision T5820 Nvidia Quadro P4000
Dell Precision T5600 Nvidia Quadro FX1800
Creo 4.0 M040, M050, M080

erstellt am: 22. Jan. 2007 17:46    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für magic_halli 10 Unities + Antwort hilfreich

Wenn man es noch ein bissl sicherer machen will, kann man in jeder der Anwendungen einen Try und Catch Block einfügen der zuerst Versucht ob der zusätzliche Menüpunkt in das Untermenü eingefügt werden kann. Schlägt dies fehl, erzeut die Anwendung das Menü. So ist es egal welche der Anwendungen zuerst registriert wird und die Beiden Anwendungen können dann auch separat betrieben werden. Code sieht in etwas so aus:

try{
session = pfcGlobal.GetProESession();
myOpenCommand = session.UICreateCommand("OPENCDIR_COMMAND",new SetOpenCdirButtonActionListener());
}
catch(jxthrowable x){
Logi.write("Exception in GetProESession(): "+x);
return;
}
try{
session.UIAddButton(myOpenCommand, "JH-Tools",
null, "JH USER Open Cdir",
"JH USER Info Open Cdir", buttonTexts );
}
catch (jxthrowable x){
try {
session.UIAddMenu("JH-Tools", "Utilities.cb_util_weblnk", jhToolsMnuFile, "Utilities");
session.UIAddButton(myOpenCommand, "JH-Tools",
null, "JH USER Open Cdir",
"JH USER Info Open Cdir", buttonTexts );
} catch (jxthrowable y) {
if (debug == true){Logi.write("Exception in UIAddMenu() or UIAddButton(): "+ y);}
                        return;
}
        if (debug == true){Logi.write("Exception in UIAddButton() para: " + x);}
}

Sorry, dass die Einrückungen nicht sauben sind .....

Gruß

Matthias

------------------
Der Meister

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz