Char size

Hello.
How can I use a char greater than 132 digits within an abap program ?
Even when I define a field with size 300 or type of domain with char 1000 size it gets only and exactly 132 digits when I'm concatenating few fields into it.
Thanks in advance,
Rebeka

it gets only and exactly 132 digits when I'm concatenating few fields into it.
how did you find this out? during debugging, if yes, in debuggin mode you wont be able to see the full value.
try this in debuggin to see specific areas
varaibleofsize300+132(100)

Similar Messages

  • Import limit  & char size

    Two quick questions:
    1) Is there any restriction on number of imports per java class?
    2) 'char' datatype size always fixed or platform dependent?
    Thanks in advance.

    Praveen_Forum wrote:
    I am really not sure about my answers but my thinking is
    1) there is no restriction on imports but as the number of imports increases it might have performance issues.Nope. Imports only exist at compile-time, at runtime everything is referred to by its fully-qualified name. A lot of imports might well point to a class that's doing too much, and needs decomposing to smaller classes, though
    2) guess char size is fixedYep

  • TXT Msg char size  for Samsung Stratosphere

    I haven't seen any updates on this subject since the middle of 2011.  Has anything changed that allows you to increase the char size for TXT msgs?
    The phone provides that option for mail but I don't see any way to do it for txting.

    Ann154 is right.  You can't change just the messaging font.  The only way to change the messaging font is to change the font for all the phone's functions and screens. 

  • CHAR size result BUG

    Hi;
    Are there any bug fixed between Oracle 8i and 9i ?
    I have query that return the same result even if the number of the blanck in the right value of operand is not the same
    example:
    22 else UAL_OWNER.DW_SALES_CYCLE_TB.CYCLE_NO
    23 end = '3 '
    24 AND UAL_OWNER.DW_DIRECTORY_TB.DIRECTORY_NO = '017'
    This query return the same result with one, two, or any number of blanks after 3 vaue (see line 23)
    BUT in Oracle9i they return result ONLY if the number of blanck match with the size of Oracle field
    Are there any BUG fixed? I am searching the documentation of this BUG in the metalink
    Help us
    Mostafa

    The query used is
    ===================
    SELECT
    UAL_OWNER.DW_SALES_CHANNEL_TB.CHANNEL_ABBREV,
    UAL_OWNER.DW_CREW_TB.CREW_NAME,
    EMPLOYEE_SalesRep.EMPLOYEE_TR_NAME,
    EMPLOYEE_SalesRep.EMPLOYEE_REP_NO,
    UAL_OWNER.DW_CUSTOMER_TB.CUSTOMER_NAME,
    UAL_OWNER.DW_CUSTOMER_TB.SW_TEL_NO,
    UAL_OWNER.DW_CUSTOMER_TB.ACCT_TEL_NO,
    UAL_OWNER.DW_DIRECTORY_TB.SECTION_NO,
    UAL_OWNER.DW_SALES_FACT_TB.PREP_DATE,
    sum(UAL_OWNER.DW_SALES_FACT_TB.REVENUE_BEFORE_SERVICING),
    sum(UAL_OWNER.DW_SALES_FACT_TB.REVENUE_AFTER_SERVICING),
    sum(UAL_OWNER.DW_SALES_FACT_TB.NET_CHANGE)
    FROM
    UAL_OWNER.DW_SALES_CHANNEL_TB,
    UAL_OWNER.DW_CREW_TB,
    UAL_OWNER.DW_EMPLOYEE_TB EMPLOYEE_SalesRep,
    UAL_OWNER.DW_CUSTOMER_TB,
    UAL_OWNER.DW_DIRECTORY_TB,
    UAL_OWNER.DW_SALES_FACT_TB,
    UAL_OWNER.DW_SALES_CYCLE_TB
    WHERE
    ( UAL_OWNER.DW_DIRECTORY_TB.DW_DIRECTORY_ID=UAL_OWNER.DW_SALES_FACT_TB.DW_DIRECTORY_ID )
    AND ( UAL_OWNER.DW_CUSTOMER_TB.DW_CUST_ID=UAL_OWNER.DW_SALES_FACT_TB.DW_CUST_ID )
    AND ( UAL_OWNER.DW_SALES_FACT_TB.SALES_REP_ID=EMPLOYEE_SalesRep.DW_EMP_ID )
    AND ( UAL_OWNER.DW_SALES_FACT_TB.DW_SLS_CHANNEL_ID=UAL_OWNER.DW_SALES_CHANNEL_TB.DW_SLS_CHANNEL_ID )
    AND ( UAL_OWNER.DW_SALES_FACT_TB.DW_CYCLE_ID=UAL_OWNER.DW_SALES_CYCLE_TB.DW_CYCLE_ID )
    AND ( UAL_OWNER.DW_SALES_FACT_TB.DW_CREW_ID=UAL_OWNER.DW_CREW_TB.DW_CREW_ID )
    AND (
    UAL_OWNER.DW_CUSTOMER_TB.LAST_VERSION_IND = 'Y'
    AND CASE WHEN (UAL_OWNER.DW_SALES_CYCLE_TB.PSA_CYCLE_ID = '103' and UAL_OWNER.DW_SALES_CYCLE_TB.PSA_CYCLE_VERSION = '1') then '2.1' else UAL_OWNER.DW_SALES_CYCLE_TB.CYCLE_NO
    end = '3 '
    AND UAL_OWNER.DW_DIRECTORY_TB.DIRECTORY_NO = '017'
    AND EMPLOYEE_SalesRep.EMPLOYEE_REP_NO LIKE 'HE%'
    GROUP BY
    UAL_OWNER.DW_SALES_CHANNEL_TB.CHANNEL_ABBREV,
    UAL_OWNER.DW_CREW_TB.CREW_NAME,
    EMPLOYEE_SalesRep.EMPLOYEE_TR_NAME,
    EMPLOYEE_SalesRep.EMPLOYEE_REP_NO,
    UAL_OWNER.DW_CUSTOMER_TB.CUSTOMER_NAME,
    UAL_OWNER.DW_CUSTOMER_TB.SW_TEL_NO,
    UAL_OWNER.DW_CUSTOMER_TB.ACCT_TEL_NO,
    UAL_OWNER.DW_DIRECTORY_TB.SECTION_NO,
    UAL_OWNER.DW_SALES_FACT_TB.PREP_DATE
    HAVING
    sum(UAL_OWNER.DW_SALES_FACT_TB.REVENUE_BEFORE_SERVICING) > 0
    AND sum(UAL_OWNER.DW_SALES_FACT_TB.REVENUE_AFTER_SERVICING) <= 0
    ARE THERE change with CASE pl/sql command ?
    Mostafa

  • Partial Multibyte Character Error

    Hi All,
    I am getting following error while running a report in OBIEE 11 G.
    State: HY000. Code: 10058. [NQODBC] [SQL_STATE: HY000] [nQSError: 10058] A general error has occurred. [nQSError: 43113] Message returned from OBIS. [nQSError: 43119] Query Failed: [nQSError: 17001] Oracle Error code: 29275, message: ORA-29275: partial multibyte character at OCI call OCIStmtFetch. [nQSError: 17012] Bulk fetch failed. (HY000)
    NLS_LANG Paramters is set at the Oracle database 11.
    [NLS_LANGUAGE].[NLS_TERRITORY][NLS_CHARACTERSET]----------->AMERICAN.AMERICA.AL32UTF8
    Any help in this.

    Hi,
    It's seems are you using char function in your report?
    If yes, Change the char size .
    ex: cast(column name as char).
    A. Cast(column name as char(300)).
    I am not sure this is what your looking so far.
    Award points it is useful.
    Thanks,
    Satya

  • 64-bit JNI C++ to JAVA invocation multiple threads classloader problem

    Hi ALL,
    I have a C++ app that invokes Java classes on 64-bit Solaris 10 with 64-bit JVM.
    Here is the problem:
    The native non-main (not the thread that initializes the JVM) threads would not be able to find any user-define class.
    Here are the symptoms and observations:
    1. JNIEnv::ExceptionDescribe() showed the following StackOverflowError:
    Exception in thread "Thread-0" java.lang.StackOverflowError
            at java.util.Arrays.copyOf(Arrays.java:2734)
            at java.util.Vector.ensureCapacityHelper(Vector.java:226)
            at java.util.Vector.addElement(Vector.java:573)
            at java.lang.ClassLoader.addClass(ClassLoader.java:173)
            at java.lang.ClassLoader.defineClass1(Native Method)
            at java.lang.ClassLoader.defineClass(ClassLoader.java:621)
            at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
            at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
            at java.net.URLClassLoader.access$000(URLClassLoader.java:56)
            at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
            at java.security.AccessController.doPrivileged(Native Method)
            at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
            at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
            at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
            at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
            at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)2. The "main thread" that instantiates the JVM has no problem finding and loading any class or method
    3. But the other threads (non-main threads) would not be able to find the user-defined classes unless the classes were already loaded by the main thread.
    4. The non-main threads can find the "standard" java classes with no problem
    5. The same app ran fine on 32-bit system.
    6. Except for the JVM reference is global, each thread acquired JNIEnv by either GetEnv() or AttachCurrentThread().
    Any idea why it is a problem with 64-bit?
    I have the sample program to reproduce this issue in this thread: http://forums.sun.com/thread.jspa?messageID=10885363&#10885363. That was the original thread I raised but I have narrowed it down to a more concrete scenario. That's why I am creating this new thread. I hope this does not break any rule on this forum. If it does, I apologize.
    I really appreciate it if anyone can provide any help/suggestion.
    Regards,
    - Triet

    Here is the sample program. Again, this works on 32-bit but not 64-bit.
    #include <string>
    #include "jni.h"
    #include "TestThread.h"
    static JavaVM *g_pjvm = NULL;  /* denotes a Java VM */
    static JNIEnv *g_penv = NULL;  /* pointer to native method interface */
    void initJVM(char** jvmOptions) {
        printf("RJniTest init starts...\n");
        JavaVMInitArgs vm_args; /* JDK/JRE 6 VM initialization arguments */
        JavaVMOption* poptions;
        int optionLen = 0;
        while (jvmOptions[optionLen]) {
            optionLen++;
        printf("RJniTest::init len=%d\n", optionLen);
        if (optionLen > 0) {
            printf("RJniWrapper::init jvmOptions\n");
            poptions = new JavaVMOption[optionLen];
            //poptions[0].optionString = "-Djava.class.path=/usr/lib/java";
            int idx = 0;
            while (jvmOptions[idx]) {
                poptions[idx].optionString = jvmOptions[idx];
                idx++;
        printf("RJniTest::init vm_args: version(%x), nOptions(%d)\n",
                JNI_VERSION_1_6, optionLen);
        vm_args.version = JNI_VERSION_1_6;
        vm_args.nOptions = optionLen;
        vm_args.options = poptions;
        vm_args.ignoreUnrecognized = JNI_FALSE;
        // load and initialize a Java VM, return a JNI interface
        // pointer in env
        printf("RJniTest::init creates JVM\n");
        JNI_CreateJavaVM(&g_pjvm, (void**)&g_penv, &vm_args);
        printf("RJniTest init ends\n");
    void findClass(const char* classname) {
        static const char* fname = "justFindClasses";
        printf("%s: findClass: %s\n", fname, classname);
        JNIEnv* jenv;
        jint ret = g_pjvm->GetEnv((void**)&jenv, JNI_VERSION_1_6);
        if (ret == JNI_EDETACHED) {
            ret = g_pjvm->AttachCurrentThread((void**)&jenv, NULL);
            if (ret != JNI_OK || jenv == NULL) {
                printf("%s: get env error: ret=%d\n", ret, fname);
            } else {
                printf("%s: got new env\n", fname);
        } else if (ret == JNI_OK) {
            printf("%s: env already there\n");
        jclass classref;
        classref = jenv->FindClass(classname);
        if (classref == NULL) {
            printf("%s: %s class not found!\n", fname, classname);
            if (jenv->ExceptionOccurred()) {
                jenv->ExceptionDescribe();
                jenv->ExceptionClear();
        printf("%s: found class: %s\n", fname, classname);
    class RJniTestThread : public TestThread {
    public:
        void threadmain();
    void RJniTestThread::threadmain() {
        printf("RJniTestThread::threadmain: Starting testing\n");
        findClass("org/apache/commons/logging/Log");
        findClass("java/util/List");
        printf("RJniTestThread::threadmain: done.\n");
    int main(int argc, char** argv) {
        char **jvmOptions = NULL;
        printf("RJniTestDriver starts...\n");
        if (argc > 1) {
            jvmOptions = new char*[argc];
            for (int i = 0; i < argc ; i ++) {
                jvmOptions[i] = argv[i + 1];
            jvmOptions[argc - 1] = NULL;
        } else {
            int size = 8;
            int i = 0;
            jvmOptions = new char*[size];
            jvmOptions[i++] = (char*) "-Djava.class.path=<list of jar files and path here>";
            jvmOptions[i++] = (char*) "-Djava.library.path=/sandbox/mxdev/3rdparty/java/unix/jdk1.6.0_14/jre/lib/sparc";
            jvmOptions[i++] = (char*) "-Djava.compiler=NONE";
            jvmOptions[i++] = (char*) "-verbose:jni";
            jvmOptions[i++] = (char*) "-Xcheck:jni";
            jvmOptions[i++] = NULL;
        printf("init JVM\n");
        initJVM(jvmOptions);
        // UNCOMMENT HERE
        // findClass("org/apache/commons/logging/Log");
        // findClass("java/util/List");
        // UNCOMMENT END
        printf("start test thread\n");
        RJniTestThread testThread;
        ThreadId tid = testThread.launch();
        printf("wait for test thread\n");
        int ret = pthread_join(tid, NULL);
        printf("RJniTestDriver ends\n");
    }

  • Reading characters from a text file into a multidimensional array?

    I have an array, maze[][] that is to be filled with characters from a text file. I've got most of the program worked out (i think) but can't test it because I am reading my file incorrectly. However, I'm running into major headaches with this part of the program.
    The text file looks like this: (It is meant to be a maze, 19 is the size of the maze(assumed to be square). is free space, # is block, s is start, x is finish)
    This didn't paste evenly, but thats not a big deal. Just giving an idea.
    19
    5..................
    And my constructor looks like follows, I've tried zillions of things with the input.hasNext() and hasNextLine() to no avail.
    Code:
    //Scanner to read file
    Scanner input = null;
    try{
    input = new Scanner(fileName);
    }catch(RuntimeException e) {
    System.err.println("Couldn't find the file");
    System.exit(0);
    //Set the size of the maze
    while(input.hasNextInt())
    size = input.nextInt();
    //Set Limits on coordinates
    Coordinates.setLimits(size);
    //Set the maze[][] array equal to this size
    maze = new char[size][size];
    //Fill the Array with maze values
    for(int i = 0; i < maze.length; i++)
    for(int x = 0; x < maze.length; x++)
    if(input.hasNextLine())
    String insert = input.nextLine();
    maze[i][x] = insert.charAt(x);
    Any advice would be loved =D

    Code-tags sometimes cause wonders, I replaced # with *, as the code tags interprets # as comment, which looks odd:
    ******...*.........To your code: Did you test it step by step, to find out about what is read? You could either use a debugger (e.g., if you have an IDE) or system outs to get a clue. First thing to check would be, if the maze size is read correctly. Further, the following loops look odd:for(int i = 0; i < maze.length; i++) {
        for(int x = 0; x < maze.length; x++) {
            if (input.hasNextLine()) {
                String insert = input.nextLine();
                maze[x] = insert.charAt(x);
    }Shouldn't the nextLine test and assignment be in the outer loop? And assignment be to each maze's inner array? Like so:for(int i = 0; i < maze.length; i++) {
        if (input.hasNextLine()) {
            String insert = input.nextLine();
            for(int x = 0; x < insert.size(); x++) {
                maze[i][x] = insert.charAt(x);
    }Otherwise, only one character per line is read and storing a character actually should fail.

  • Using XMP Lib in a plugin for CS5.0 Windows

    Hello
    I have been able to compile the XMP-Toolkit-SDK-5.1.2 and use it successfully in a plugin for CS5.0 Mac OS X.
    Im now trying to do the same on windows, but with no luck. Im using MS Visual C++ 2008 express edition.
    There seems to be a conflict between the XML library and msvcprt.lib library. If I try to exclude the msvcprt.lib library I get only one error.
    If I try to exclude the msvcprt.lib i get the following problem:
    1>PlugInStatics1.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: __thiscall std::locale::id::id(unsigned int)" (__imp_??0id@locale@std@@QAE@I@Z)
    I get the following linker problems:
    1>XMPCoreStaticRelease.lib(WXMPMeta.obj) : MSIL .netmodule or module compiled with /GL found; restarting link with /LTCG; add /LTCG to the link command line to improve linker performance
    1>msvcprt.lib(MSVCP90.dll) : error LNK2005: "public: __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" (??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@ABV01@@Z) already defined in XMPCoreStaticRelease.lib(XMPCore_Impl.obj)
    1>msvcprt.lib(MSVCP90.dll) : error LNK2005: "public: __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::~basic_string<char,struct std::char_traits<char>,class std::allocator<char> >(void)" (??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ) already defined in XMPCoreStaticRelease.lib(WXMPMeta.obj)
    1>msvcprt.lib(MSVCP90.dll) : error LNK2005: "public: char const * __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::c_str(void)const " (?c_str@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEPBDXZ) already defined in XMPCoreStaticRelease.lib(WXMPMeta.obj)
    1>msvcprt.lib(MSVCP90.dll) : error LNK2005: "public: __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >(char const *)" (??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@PBD@Z) already defined in XMPCoreStaticRelease.lib(XMPCore_Impl.obj)
    1>msvcprt.lib(MSVCP90.dll) : error LNK2005: "public: unsigned int __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::size(void)const " (?size@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIXZ) already defined in XMPCoreStaticRelease.lib(WXMPMeta.obj)
    1>msvcprt.lib(MSVCP90.dll) : error LNK2005: "public: void __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::push_back(char)" (?push_back@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXD@Z) already defined in XMPCoreStaticRelease.lib(XMPUtils.obj)
    1>msvcprt.lib(MSVCP90.dll) : error LNK2005: "public: class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > & __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::assign(char const *,unsigned int)" (?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@PBDI@Z) already defined in XMPCoreStaticRelease.lib(XMPCore_Impl.obj)
    1>msvcprt.lib(MSVCP90.dll) : error LNK2005: "public: char const * __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::data(void)const " (?data@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEPBDXZ) already defined in XMPFilesStaticRelease.lib(P2_Handler.obj)
    1>msvcprt.lib(MSVCP90.dll) : error LNK2005: "public: class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > & __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::operator=(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" (??4?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV01@ABV01@@Z) already defined in XMPCoreStaticRelease.lib(XMPCore_Impl.obj)
    1>msvcprt.lib(MSVCP90.dll) : error LNK2005: "public: __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >(void)" (??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ) already defined in XMPCoreStaticRelease.lib(WXMPMeta.obj)
    Best Regards
    / Pontus Hulin

    Hi Pontus.
    You're probably mixing static libraries with shared.
    Regards
    Bartek

  • Randomaccessfile, writing an update to the file?

    Hi,
    I'm working on an app that uses a randomaccessfile (student.dat) and I have it so it will write info to the dat file & I can search thru what I entered..... now I need to add the ability to update a record in the dat. The student info is just basic name & address. So I need to be able to update an address change for a given record.
    I looked at the documentation online but I'm not understanding how you capture the reference point in the file and modify it.... does anyone have a good example or does anyone out there know how to explain how to do it to me??
    My file is here below that I need to add the update functionality to (and the 2 accompaning files)...... I already inserted my Update button on the second panel where it needs to reside. Now I need to add the update functionality to the button.
    Anyone have any suggestions/explanations on how to add this fnctionality or know a working example I can reference?? Any help would be great appreciated.... thanks.
    // StudentRecords.java: Store and read data
    // using RandomAccessFile
    import java.io.*;
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    import javax.swing.border.*;
    public class StudentRecords extends JFrame {
      // Create a tabbed pane to hold two panels
      private JTabbedPane jtpStudent = new JTabbedPane();
      // Random access file for access the student.dat file
      private RandomAccessFile raf;
      /** Main method */
      public static void main(String[] args) {
        StudentRecords frame = new StudentRecords();
        frame.pack();
        frame.setTitle("Test RandomAccessFile");
        frame.setVisible(true);
      /** Default constructor */
      public StudentRecords() {
        // Open or create a random access file
        try {
          raf = new RandomAccessFile("student.dat", "rw");
        catch(IOException ex) {
          System.out.print("Error: " + ex);
          System.exit(0);
        // Place buttons in the tabbed pane
        jtpStudent.add(new RegisterStudent(raf), "Register Student");
        jtpStudent.add(new ViewStudent(raf), "View Student");
        // Add the tabbed pane to the frame
        getContentPane().add(jtpStudent);
    // Register student panel
    class RegisterStudent extends JPanel implements ActionListener {
      // Button for registering a student
      private JButton jbtRegister;
      // Student information panel
      private StudentPanel studentPanel;
      // Random access file
      private RandomAccessFile raf;
      public RegisterStudent(RandomAccessFile raf) {
        // Pass raf to RegisterStudent Panel
        this.raf = raf;
        // Add studentPanel and jbtRegister in the panel
        setLayout(new BorderLayout());
        add(studentPanel = new StudentPanel(),
          BorderLayout.CENTER);
        add(jbtRegister = new JButton("Register"),
          BorderLayout.SOUTH);
        // Register listener
        jbtRegister.addActionListener(this);
      /** Handle button actions */
    //   JFileChooser fc;
      public void actionPerformed(ActionEvent e) {
        if (e.getSource() == jbtRegister) {
          Student student = studentPanel.getStudent();
          try {
            raf.seek(raf.length());
            student.writeStudent(raf);
          catch(IOException ex) {
            System.out.print("Error: " + ex);
    // View student panel
    class ViewStudent extends JPanel implements ActionListener {
      // Buttons for viewing student information
      private JButton jbtFirst, jbtNext, jbtPrevious, jbtLast, jbtUpdate;
      // Random access file
      private RandomAccessFile raf = null;
      // Current student record
      private Student student = new Student();
      // Create a student panel
      private StudentPanel studentPanel = new StudentPanel();
      // File pointer in the random access file
      private long lastPos;
      private long currentPos;
      public ViewStudent(RandomAccessFile raf) {
        // Pass raf to ViewStudent
        this.raf = raf;
        // Panel p to hold four navigator buttons
        JPanel p = new JPanel();
        p.setLayout(new FlowLayout(FlowLayout.LEFT));
        p.add(jbtFirst = new JButton("First"));
        p.add(jbtNext = new JButton("Next"));
        p.add(jbtPrevious = new JButton("Previous"));
        p.add(jbtLast = new JButton("Last"));
        p.add(jbtUpdate = new JButton("Update"));
        // Add panel p and studentPanel to ViewPanel
        setLayout(new BorderLayout());
        add(studentPanel, BorderLayout.CENTER);
        add(p, BorderLayout.SOUTH);
        // Register listeners
        jbtFirst.addActionListener(this);
        jbtNext.addActionListener(this);
        jbtPrevious.addActionListener(this);
        jbtLast.addActionListener(this);
        jbtUpdate.addActionListener(this);
      /** Handle navigation button actions */
      public void actionPerformed(ActionEvent e) {
        String actionCommand = e.getActionCommand();
        if (e.getSource() instanceof JButton) {
          try {
            if ("First".equals(actionCommand)) {
              if (raf.length() > 0)
                retrieve(0);
            else if ("Next".equals(actionCommand)) {
              currentPos = raf.getFilePointer();
              if (currentPos < raf.length())
                retrieve(currentPos);
            else if ("Previous".equals(actionCommand)) {
              currentPos = raf.getFilePointer();
              if (currentPos > 0)
                retrieve(currentPos - 2*2*Student.RECORD_SIZE);
            else if ("Last".equals(actionCommand)) {
              lastPos = raf.length();
              if (lastPos > 0)
                retrieve(lastPos - 2*Student.RECORD_SIZE);
            else if ("Update".equals(actionCommand)) {
         //     raf.writeChars(student.dat);     //HOW DO I UPDATE THE FILE????????????????
          catch(IOException ex) {
            System.out.print("Error: " + ex);
      /** Retrieve a record at specified position */
      public void retrieve(long pos) {
        try {
          raf.seek(pos);
          student.readStudent(raf);
          studentPanel.setStudent(student);
        catch(IOException ex) {
          System.out.print("Error: " + ex);
    // This class contains static methods for reading and writing
    // fixed length records
    class FixedLengthStringIO {
      // Read fixed number of characters from a DataInput stream
      public static String readFixedLengthString(int size,
        DataInput in) throws IOException {
        char c[] = new char[size];
        for (int i=0; i<size; i++)
          c[i] = in.readChar();
        return new String(c);
      // Write fixed number of characters (string s with padded spaces)
      // to a DataOutput stream
      public static void writeFixedLengthString(String s, int size,
        DataOutput out) throws IOException {
        char cBuffer[] = new char[size];
        s.getChars(0, s.length(), cBuffer, 0);
        for (int i = s.length(); i < cBuffer.length; i++)
          cBuffer[i] = ' ';
        String newS = new String(cBuffer);
        out.writeChars(newS);
    }Student Panel....................
    // StudentPanel.java: Panel for displaying student information
    import javax.swing.*;
    import javax.swing.border.*;
    import java.awt.*;
    public class StudentPanel extends JPanel {
      JTextField jtfName = new JTextField(32);
      JTextField jtfStreet = new JTextField(32);
      JTextField jtfCity = new JTextField(20);
      JTextField jtfState = new JTextField(2);
      JTextField jtfZip = new JTextField(5);
      /** Construct a student panel */
      public StudentPanel() {
        // Set the panel with line border
        setBorder(new BevelBorder(BevelBorder.RAISED));
        // Panel p1 for holding labels Name, Street, and City
        JPanel p1 = new JPanel();
        p1.setLayout(new GridLayout(3, 1));
        p1.add(new JLabel("Name"));
        p1.add(new JLabel("Street"));
        p1.add(new JLabel("City"));
        // Panel jpState for holding state
        JPanel jpState = new JPanel();
        jpState.setLayout(new BorderLayout());
        jpState.add(new JLabel("State"), BorderLayout.WEST);
        jpState.add(jtfState, BorderLayout.CENTER);
        // Panel jpZip for holding zip
        JPanel jpZip = new JPanel();
        jpZip.setLayout(new BorderLayout());
        jpZip.add(new JLabel("Zip"), BorderLayout.WEST);
        jpZip.add(jtfZip, BorderLayout.CENTER);
        // Panel p2 for holding jpState and jpZip
        JPanel p2 = new JPanel();
        p2.setLayout(new BorderLayout());
        p2.add(jpState, BorderLayout.WEST);
        p2.add(jpZip, BorderLayout.CENTER);
        // Panel p3 for holding jtfCity and p2
        JPanel p3 = new JPanel();
        p3.setLayout(new BorderLayout());
        p3.add(jtfCity, BorderLayout.CENTER);
        p3.add(p2, BorderLayout.EAST);
        // Panel p4 for holding jtfName, jtfStreet, and p3
        JPanel p4 = new JPanel();
        p4.setLayout(new GridLayout(3, 1));
        p4.add(jtfName);
        p4.add(jtfStreet);
        p4.add(p3);
        // Place p1 and p4 into StudentPanel
        setLayout(new BorderLayout());
        add(p1, BorderLayout.WEST);
        add(p4, BorderLayout.CENTER);
      /** Get student information from the text fields */
      public Student getStudent() {
        return new Student(jtfName.getText().trim(),
                           jtfStreet.getText().trim(),
                           jtfCity.getText().trim(),
                           jtfState.getText().trim(),
                           jtfZip.getText().trim());
      /** Set student information on the text fields */
      public void setStudent(Student s) {
        jtfName.setText(s.getName());
        jtfStreet.setText(s.getStreet());
        jtfCity.setText(s.getCity());
        jtfState.setText(s.getState());
        jtfZip.setText(s.getZip());
    }Student file............
    // Student.java: Student class encapsulates student information
    import java.io.*;
    public class Student implements Serializable {
      private String name;
      private String street;
      private String city;
      private String state;
      private String zip;
      // Specify the size of five string fields in the record
      final static int NAME_SIZE = 32;
      final static int STREET_SIZE = 32;
      final static int CITY_SIZE = 20;
      final static int STATE_SIZE = 2;
      final static int ZIP_SIZE = 5;
      // the total size of the record in bytes, a Unicode
      // character is 2 bytes size
      final static int RECORD_SIZE =
        (NAME_SIZE + STREET_SIZE + CITY_SIZE + STATE_SIZE + ZIP_SIZE);
      /** Default constructor */
      public Student() {
      /** Construct a Student with specified name, street, city, state,
         and zip
      public Student(String name, String street, String city,
        String state, String zip) {
        this.name = name;
        this.street = street;
        this.city = city;
        this.state = state;
        this.zip = zip;
      /** Return name */
      public String getName() {
        return name;
      /** Return street */
      public String getStreet() {
        return street;
      /** Return city */
      public String getCity() {
        return city;
      /** Return state */
      public String getState() {
        return state;
      /** Return zip */
      public String getZip() {
        return zip;
      /** Write a student to a data output stream */
      public void writeStudent(DataOutput out) throws IOException {
        FixedLengthStringIO.writeFixedLengthString(
          name, NAME_SIZE, out);
        FixedLengthStringIO.writeFixedLengthString(
          street, STREET_SIZE, out);
        FixedLengthStringIO.writeFixedLengthString(
          city, CITY_SIZE, out);
        FixedLengthStringIO.writeFixedLengthString(
          state, STATE_SIZE, out);
        FixedLengthStringIO.writeFixedLengthString(
          zip, ZIP_SIZE, out);
      /** Read a student from data input stream */
      public void readStudent(DataInput in) throws IOException {
        name = FixedLengthStringIO.readFixedLengthString(
          NAME_SIZE, in);
        street = FixedLengthStringIO.readFixedLengthString(
          STREET_SIZE, in);
        city = FixedLengthStringIO.readFixedLengthString(
          CITY_SIZE, in);
        state = FixedLengthStringIO.readFixedLengthString(
          STATE_SIZE, in);
        zip = FixedLengthStringIO.readFixedLengthString(
          ZIP_SIZE, in);

    Advise sounds strikingly similar to what I mentioned
    page b4. Look, can you post the entire class in code
    tags ... and the entire file as well?@Bill,
    Yes, I read yours but (sorry, its hard to answer multiple replies in these forums) but I could not understand some of what you suggested. If you look at the //???? lines I commented on your code below you'll see where I'm lost on what you are doing there. You also mentioned a "marker"... is that the currentPos thing in the code of mine, to get the current position?
    Both you and Andrew suggested classes to some extent but I'm not sure how to it or what goes in it. If you look at my code paste above the buttons seem to have everything in the action, not a class, other than the register button on the other pane (which has a write method in studentpanel.java).
    I'm trying to follow/implement what u guys have been suggesting... but my brain just is not wrapping around the what I should type & where..... :-( Got any further explanation/demonstration of what I should be doing?? Sorry, I'm not that skilled of a programmer yet...
    int curr_ptr = 0,
    prev_ptr = 0;
    String marker = "ADDRS=",
    address="My new address",
    record = null;
    while ( ( record = raf.readLine() ) != null ) {   //????
    curr_ptr = raf.getFilePointer();
    if ( ( idx = record.indexOf("marker") ) != -1 ) {   //????
    record = record.substring( 0, 6 ) + address;  //????
    raf.seek( prev_ptr );
    raf.writeBytes( record );
    curr_ptr = raf.getFilePointer();
    raf.seek(curr_ptr);
    }

  • Error The field cannot be changed

    Hello Friends,
    I have code as below where name1 and LIFNR are the paramenters in WD I am sending it out to FM. But, when I compile I get the error as "The field "LIFNR" cannot be changed" LIFNR is CHAR size 10. I think normally a CHAR data type should hold the numbers. Incase not, then can any one show me how to do type casting or what is the correct way to code so that it holds the value that could be passed to LIFNR.
    lv_zvendorlist = name1.
    DATA vendnamenum type string.
    DATA: vendname type string, vendnum type string.
    vendnamenum = lv_zvendorlist.
    SPLIT vendnamenum at '-' INTO vendname vendnum.
    IF vendnum is NOT INITIAL.
    write: vendnum+0(1).
    ENDIF.
    lv_zlifnr = vendnum.
    LIFNR = lv_zlifnr.
    Thks & Rgds,
    Hemal

    I have fixed the code by passing the value directly to the field of a context node. the fix is as below for future reference.
    lv_zvendorlist = name1.
    get single attribute
      lo_el_inv_input_values->get_attribute(
        EXPORTING
          name =  `ZVENDORLIST`
        IMPORTING
          value = lv_zvendorlist ).
    DATA vendnamenum type string.
    DATA: vendname type string, vendnum type string.
    vendnamenum = lv_zvendorlist.
    SPLIT vendnamenum at '-' INTO vendname vendnum.
    lv_zlifnr = vendnum.
    set single attribute
      lo_el_inv_input_values->set_attribute(
        EXPORTING
          name =  `ZLIFNR`
          value = lv_zlifnr ).
    Thks & Rgds,
    Hemal

  • In smartform text editor, cursor is coming very very large. huugeee

    While doing smartform, in Text editor, cursor is coming in very very large size....I dont know how to reset it...
    for other texts created early also, in text editor cursor is much bigger...
    help me...i resetted the formatting...kept standard formatting too...

    I would say it's not good choice. It's slow with large files (several megabytes). It supposes multiple features (pieces of text with different font sizes) you don't really need so calculation is slow.
    I would choose JTextArea with own view to support colored chunks. You calculations of sizes are really faster because you have monospaced font and all chunks has the same char size.
    For highlighting you can use Highlighter/HighlightPainters.
    If you still the JTextPane is good read the articles http://java-sl.com/JEditorPanePerformance.html about performance improvement.
    Neither JTextPane nor JTextArea are modal. You can place them in a modal JDialog.

  • Hacking conky's own_window_type desktop to run on one virtual desktop

    Since I have no dual screen setup (just a laptop) I'd like to use my virtual desktops to run different conky instances on (almost) every virtual desktop. I tried to accomplish this by using own_window_type normal in conky, and that works - until I call the desktop, then it just minimises like a regular app. That's not what I want.
    People in #conky suggested I use the if_match functionality in conky, so I can keep using the own_window_type desktop setting, but that does not solve my issue since you cannot define different conky window sizes in one configuration file. I checked in with #openbox and they told me essentially Conky should not display on every virtual desktop (and frankly they have a point, since you can tell e.g. Openbox to sticky an app on every virtual desktop). However, one would need to hack the code for that (specifically the stuff that takes care of putting the desktop window type on every virtual desktop). That's where you guys come in, since my C knowledge is close to non-existent .
    I was told to look at x11.c and specifically the init_window() function but I'm at loss where to start...
    /* -*- mode: c; c-basic-offset: 4; tab-width: 4; indent-tabs-mode: t -*-
    * vim: ts=4 sw=4 noet ai cindent syntax=c
    * Conky, a system monitor, based on torsmo
    * Any original torsmo code is licensed under the BSD license
    * All code written since the fork of torsmo is licensed under the GPL
    * Please see COPYING for details
    * Copyright (c) 2004, Hannu Saransaari and Lauri Hakkarainen
    * Copyright (c) 2005-2010 Brenden Matthews, Philip Kovacs, et. al.
    * (see AUTHORS)
    * All rights reserved.
    * This program is free software: you can redistribute it and/or modify
    * it under the terms of the GNU General Public License as published by
    * the Free Software Foundation, either version 3 of the License, or
    * (at your option) any later version.
    * This program is distributed in the hope that it will be useful,
    * but WITHOUT ANY WARRANTY; without even the implied warranty of
    * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
    * GNU General Public License for more details.
    * You should have received a copy of the GNU General Public License
    * along with this program. If not, see <http://www.gnu.org/licenses/>.
    #include "config.h"
    #include "conky.h"
    #include "logging.h"
    #include "common.h"
    #include "x11.h"
    #include <X11/Xlib.h>
    #include <X11/Xatom.h>
    #include <X11/Xmd.h>
    #include <X11/Xutil.h>
    #ifdef IMLIB2
    #include "imlib2.h"
    #endif /* IMLIB2 */
    #ifdef XFT
    #include <X11/Xft/Xft.h>
    int use_xft = 0;
    #endif
    #ifdef HAVE_XDBE
    int use_xdbe;
    #endif
    #ifdef USE_ARGB
    int use_argb_visual;
    int have_argb_visual;
    #endif /* USE_ARGB */
    int own_window_argb_value;
    /* some basic X11 stuff */
    Display *display = NULL;
    int display_width;
    int display_height;
    int screen;
    static int set_transparent;
    static int background_colour;
    /* workarea from _NET_WORKAREA, this is where window / text is aligned */
    int workarea[4];
    /* Window stuff */
    struct conky_window window;
    char window_created = 0;
    /* local prototypes */
    static void update_workarea(void);
    static Window find_desktop_window(Window *p_root, Window *p_desktop);
    static Window find_subwindow(Window win, int w, int h);
    /* X11 initializer */
    void init_X11(const char *disp)
    if (!display) {
    if ((display = XOpenDisplay(disp)) == NULL) {
    CRIT_ERR(NULL, NULL, "can't open display: %s", XDisplayName(disp));
    screen = DefaultScreen(display);
    display_width = DisplayWidth(display, screen);
    display_height = DisplayHeight(display, screen);
    get_x11_desktop_info(display, 0);
    update_workarea();
    static void update_workarea(void)
    /* default work area is display */
    workarea[0] = 0;
    workarea[1] = 0;
    workarea[2] = display_width;
    workarea[3] = display_height;
    /* Find root window and desktop window.
    * Return desktop window on success,
    * and set root and desktop byref return values.
    * Return 0 on failure. */
    static Window find_desktop_window(Window *p_root, Window *p_desktop)
    Atom type;
    int format, i;
    unsigned long nitems, bytes;
    unsigned int n;
    Window root = RootWindow(display, screen);
    Window win = root;
    Window troot, parent, *children;
    unsigned char *buf = NULL;
    if (!p_root || !p_desktop) {
    return 0;
    /* some window managers set __SWM_VROOT to some child of root window */
    XQueryTree(display, root, &troot, &parent, &children, &n);
    for (i = 0; i < (int) n; i++) {
    if (XGetWindowProperty(display, children[i], ATOM(__SWM_VROOT), 0, 1,
    False, XA_WINDOW, &type, &format, &nitems, &bytes, &buf)
    == Success && type == XA_WINDOW) {
    win = *(Window *) buf;
    XFree(buf);
    XFree(children);
    fprintf(stderr,
    PACKAGE_NAME": desktop window (%lx) found from __SWM_VROOT property\n",
    win);
    fflush(stderr);
    *p_root = win;
    *p_desktop = win;
    return win;
    if (buf) {
    XFree(buf);
    buf = 0;
    XFree(children);
    /* get subwindows from root */
    win = find_subwindow(root, -1, -1);
    update_workarea();
    win = find_subwindow(win, workarea[2], workarea[3]);
    if (buf) {
    XFree(buf);
    buf = 0;
    if (win != root) {
    fprintf(stderr,
    PACKAGE_NAME": desktop window (%lx) is subwindow of root window (%lx)\n",
    win, root);
    } else {
    fprintf(stderr, PACKAGE_NAME": desktop window (%lx) is root window\n", win);
    fflush(stderr);
    *p_root = root;
    *p_desktop = win;
    return win;
    static int colour_set = -1;
    /* if no argb visual is configured sets background to ParentRelative for the Window and all parents,
    else real transparency is used */
    void set_transparent_background(Window win, int alpha)
    (void)alpha; /* disable warnings when unused */
    #ifdef USE_ARGB
    if (have_argb_visual) {
    // real transparency
    if (set_transparent) {
    XSetWindowBackground(display, win, 0x00);
    } else if (colour_set != background_colour) {
    XSetWindowBackground(display, win,
    background_colour | (alpha << 24));
    colour_set = background_colour;
    } else {
    #endif /* USE_ARGB */
    // pseudo transparency
    if (set_transparent) {
    Window parent = win;
    unsigned int i;
    for (i = 0; i < 50 && parent != RootWindow(display, screen); i++) {
    Window r, *children;
    unsigned int n;
    XSetWindowBackgroundPixmap(display, parent, ParentRelative);
    XQueryTree(display, parent, &r, &parent, &children, &n);
    XFree(children);
    } else if (colour_set != background_colour) {
    XSetWindowBackground(display, win, background_colour);
    colour_set = background_colour;
    #ifdef USE_ARGB
    #endif /* USE_ARGB */
    #ifdef USE_ARGB
    static int get_argb_visual(Visual** visual, int *depth) {
    /* code from gtk project, gdk_screen_get_rgba_visual */
    XVisualInfo visual_template;
    XVisualInfo *visual_list;
    int nxvisuals = 0, i;
    visual_template.screen = screen;
    visual_list = XGetVisualInfo (display, VisualScreenMask,
    &visual_template, &nxvisuals);
    for (i = 0; i < nxvisuals; i++) {
    if (visual_list[i].depth == 32 &&
    (visual_list[i].red_mask == 0xff0000 &&
    visual_list[i].green_mask == 0x00ff00 &&
    visual_list[i].blue_mask == 0x0000ff)) {
    *visual = visual_list[i].visual;
    *depth = visual_list[i].depth;
    DBGP("Found ARGB Visual");
    XFree(visual_list);
    return 1;
    // no argb visual available
    DBGP("No ARGB Visual found");
    XFree(visual_list);
    return 0;
    #endif /* USE_ARGB */
    void destroy_window(void)
    #ifdef XFT
    if(window.xftdraw) {
    XftDrawDestroy(window.xftdraw);
    #endif
    if(window.gc) {
    XFreeGC(display, window.gc);
    memset(&window, 0, sizeof(struct conky_window));
    colour_set = -1;
    void init_window(int own_window, int w, int h, int set_trans, int back_colour,
    char **argv, int argc)
    /* There seems to be some problems with setting transparent background
    * (on fluxbox this time). It doesn't happen always and I don't know why it
    * happens but I bet the bug is somewhere here. */
    set_transparent = set_trans;
    background_colour = back_colour;
    window_created = 1;
    #ifdef OWN_WINDOW
    if (own_window) {
    int depth = 0, flags;
    Visual *visual = NULL;
    if (!find_desktop_window(&window.root, &window.desktop)) {
    return;
    #ifdef USE_ARGB
    if (use_argb_visual && get_argb_visual(&visual, &depth)) {
    have_argb_visual = 1;
    window.visual = visual;
    window.colourmap = XCreateColormap(display,
    DefaultRootWindow(display), window.visual, AllocNone);
    } else {
    #endif /* USE_ARGB */
    window.visual = DefaultVisual(display, screen);
    window.colourmap = DefaultColormap(display, screen);
    depth = CopyFromParent;
    visual = CopyFromParent;
    #ifdef USE_ARGB
    #endif /* USE_ARGB */
    if (window.type == TYPE_OVERRIDE) {
    /* An override_redirect True window.
    * No WM hints or button processing needed. */
    XSetWindowAttributes attrs = { ParentRelative, 0L, 0, 0L, 0, 0,
    Always, 0L, 0L, False, StructureNotifyMask | ExposureMask, 0L,
    True, 0, 0 };
    #ifdef USE_ARGB
    if (have_argb_visual) {
    attrs.colormap = window.colourmap;
    flags = CWBorderPixel | CWColormap | CWOverrideRedirect;
    } else {
    #endif /* USE_ARGB */
    flags = CWBackPixel | CWOverrideRedirect;
    #ifdef USE_ARGB
    #endif /* USE_ARGB */
    /* Parent is desktop window (which might be a child of root) */
    window.window = XCreateWindow(display, window.desktop, window.x,
    window.y, w, h, 0, depth, InputOutput, visual,
    flags, &attrs);
    XLowerWindow(display, window.window);
    fprintf(stderr, PACKAGE_NAME": window type - override\n");
    fflush(stderr);
    } else { /* window.type != TYPE_OVERRIDE */
    /* A window managed by the window manager.
    * Process hints and buttons. */
    XSetWindowAttributes attrs = { ParentRelative, 0L, 0, 0L, 0, 0,
    Always, 0L, 0L, False, StructureNotifyMask | ExposureMask |
    ButtonPressMask | ButtonReleaseMask, 0L, False, 0, 0 };
    XClassHint classHint;
    XWMHints wmHint;
    Atom xa;
    #ifdef USE_ARGB
    if (have_argb_visual) {
    attrs.colormap = window.colourmap;
    flags = CWBorderPixel | CWColormap | CWOverrideRedirect;
    } else {
    #endif /* USE_ARGB */
    flags = CWBackPixel | CWOverrideRedirect;
    #ifdef USE_ARGB
    #endif /* USE_ARGB */
    if (window.type == TYPE_DOCK) {
    window.x = window.y = 0;
    /* Parent is root window so WM can take control */
    window.window = XCreateWindow(display, window.root, window.x,
    window.y, w, h, 0, depth, InputOutput, visual,
    flags, &attrs);
    classHint.res_name = window.class_name;
    classHint.res_class = classHint.res_name;
    wmHint.flags = InputHint | StateHint;
    /* allow decorated windows to be given input focus by WM */
    wmHint.input =
    TEST_HINT(window.hints, HINT_UNDECORATED) ? False : True;
    if (window.type == TYPE_DOCK || window.type == TYPE_PANEL) {
    wmHint.initial_state = WithdrawnState;
    } else {
    wmHint.initial_state = NormalState;
    XmbSetWMProperties(display, window.window, NULL, NULL, argv,
    argc, NULL, &wmHint, &classHint);
    XStoreName(display, window.window, window.title);
    /* Sets an empty WM_PROTOCOLS property */
    XSetWMProtocols(display, window.window, NULL, 0);
    /* Set window type */
    if ((xa = ATOM(_NET_WM_WINDOW_TYPE)) != None) {
    Atom prop;
    switch (window.type) {
    case TYPE_DESKTOP:
    prop = ATOM(_NET_WM_WINDOW_TYPE_DESKTOP);
    fprintf(stderr, PACKAGE_NAME": window type - desktop\n");
    fflush(stderr);
    break;
    case TYPE_DOCK:
    prop = ATOM(_NET_WM_WINDOW_TYPE_DOCK);
    fprintf(stderr, PACKAGE_NAME": window type - dock\n");
    fflush(stderr);
    break;
    case TYPE_PANEL:
    prop = ATOM(_NET_WM_WINDOW_TYPE_DOCK);
    fprintf(stderr, PACKAGE_NAME": window type - panel\n");
    fflush(stderr);
    break;
    case TYPE_NORMAL:
    default:
    prop = ATOM(_NET_WM_WINDOW_TYPE_NORMAL);
    fprintf(stderr, PACKAGE_NAME": window type - normal\n");
    fflush(stderr);
    break;
    XChangeProperty(display, window.window, xa, XA_ATOM, 32,
    PropModeReplace, (unsigned char *) &prop, 1);
    /* Set desired hints */
    /* Window decorations */
    if (TEST_HINT(window.hints, HINT_UNDECORATED)) {
    /* fprintf(stderr, PACKAGE_NAME": hint - undecorated\n");
    fflush(stderr); */
    xa = ATOM(_MOTIF_WM_HINTS);
    if (xa != None) {
    long prop[5] = { 2, 0, 0, 0, 0 };
    XChangeProperty(display, window.window, xa, xa, 32,
    PropModeReplace, (unsigned char *) prop, 5);
    /* Below other windows */
    if (TEST_HINT(window.hints, HINT_BELOW)) {
    /* fprintf(stderr, PACKAGE_NAME": hint - below\n");
    fflush(stderr); */
    xa = ATOM(_WIN_LAYER);
    if (xa != None) {
    long prop = 0;
    XChangeProperty(display, window.window, xa, XA_CARDINAL, 32,
    PropModeAppend, (unsigned char *) &prop, 1);
    xa = ATOM(_NET_WM_STATE);
    if (xa != None) {
    Atom xa_prop = ATOM(_NET_WM_STATE_BELOW);
    XChangeProperty(display, window.window, xa, XA_ATOM, 32,
    PropModeAppend, (unsigned char *) &xa_prop, 1);
    /* Above other windows */
    if (TEST_HINT(window.hints, HINT_ABOVE)) {
    /* fprintf(stderr, PACKAGE_NAME": hint - above\n");
    fflush(stderr); */
    xa = ATOM(_WIN_LAYER);
    if (xa != None) {
    long prop = 6;
    XChangeProperty(display, window.window, xa, XA_CARDINAL, 32,
    PropModeAppend, (unsigned char *) &prop, 1);
    xa = ATOM(_NET_WM_STATE);
    if (xa != None) {
    Atom xa_prop = ATOM(_NET_WM_STATE_ABOVE);
    XChangeProperty(display, window.window, xa, XA_ATOM, 32,
    PropModeAppend, (unsigned char *) &xa_prop, 1);
    /* Sticky */
    if (TEST_HINT(window.hints, HINT_STICKY)) {
    /* fprintf(stderr, PACKAGE_NAME": hint - sticky\n");
    fflush(stderr); */
    xa = ATOM(_NET_WM_DESKTOP);
    if (xa != None) {
    CARD32 xa_prop = 0xFFFFFFFF;
    XChangeProperty(display, window.window, xa, XA_CARDINAL, 32,
    PropModeAppend, (unsigned char *) &xa_prop, 1);
    xa = ATOM(_NET_WM_STATE);
    if (xa != None) {
    Atom xa_prop = ATOM(_NET_WM_STATE_STICKY);
    XChangeProperty(display, window.window, xa, XA_ATOM, 32,
    PropModeAppend, (unsigned char *) &xa_prop, 1);
    /* Skip taskbar */
    if (TEST_HINT(window.hints, HINT_SKIP_TASKBAR)) {
    /* fprintf(stderr, PACKAGE_NAME": hint - skip_taskbar\n");
    fflush(stderr); */
    xa = ATOM(_NET_WM_STATE);
    if (xa != None) {
    Atom xa_prop = ATOM(_NET_WM_STATE_SKIP_TASKBAR);
    XChangeProperty(display, window.window, xa, XA_ATOM, 32,
    PropModeAppend, (unsigned char *) &xa_prop, 1);
    /* Skip pager */
    if (TEST_HINT(window.hints, HINT_SKIP_PAGER)) {
    /* fprintf(stderr, PACKAGE_NAME": hint - skip_pager\n");
    fflush(stderr); */
    xa = ATOM(_NET_WM_STATE);
    if (xa != None) {
    Atom xa_prop = ATOM(_NET_WM_STATE_SKIP_PAGER);
    XChangeProperty(display, window.window, xa, XA_ATOM, 32,
    PropModeAppend, (unsigned char *) &xa_prop, 1);
    fprintf(stderr, PACKAGE_NAME": drawing to created window (0x%lx)\n",
    window.window);
    fflush(stderr);
    XMapWindow(display, window.window);
    } else
    #endif /* OWN_WINDOW */
    XWindowAttributes attrs;
    if (!window.window) {
    window.window = find_desktop_window(&window.root, &window.desktop);
    window.visual = DefaultVisual(display, screen);
    window.colourmap = DefaultColormap(display, screen);
    if (XGetWindowAttributes(display, window.window, &attrs)) {
    window.width = attrs.width;
    window.height = attrs.height;
    fprintf(stderr, PACKAGE_NAME": drawing to desktop window\n");
    /* Drawable is same as window. This may be changed by double buffering. */
    window.drawable = window.window;
    #ifdef HAVE_XDBE
    if (use_xdbe) {
    int major, minor;
    if (!XdbeQueryExtension(display, &major, &minor)) {
    use_xdbe = 0;
    } else {
    window.back_buffer = XdbeAllocateBackBufferName(display,
    window.window, XdbeBackground);
    if (window.back_buffer != None) {
    window.drawable = window.back_buffer;
    fprintf(stderr, PACKAGE_NAME": drawing to double buffer\n");
    } else {
    use_xdbe = 0;
    if (!use_xdbe) {
    NORM_ERR("failed to set up double buffer");
    if (!use_xdbe) {
    fprintf(stderr, PACKAGE_NAME": drawing to single buffer\n");
    #endif
    #ifdef IMLIB2
    cimlib_init(display, window.drawable, window.visual, window.colourmap);
    #endif /* IMLIB2 */
    XFlush(display);
    XSelectInput(display, window.window, ExposureMask | PropertyChangeMask
    #ifdef OWN_WINDOW
    | (own_window ? (StructureNotifyMask |
    ButtonPressMask | ButtonReleaseMask) : 0)
    #endif
    static Window find_subwindow(Window win, int w, int h)
    unsigned int i, j;
    Window troot, parent, *children;
    unsigned int n;
    /* search subwindows with same size as display or work area */
    for (i = 0; i < 10; i++) {
    XQueryTree(display, win, &troot, &parent, &children, &n);
    for (j = 0; j < n; j++) {
    XWindowAttributes attrs;
    if (XGetWindowAttributes(display, children[j], &attrs)) {
    /* Window must be mapped and same size as display or
    * work space */
    if (attrs.map_state != 0 && ((attrs.width == display_width
    && attrs.height == display_height)
    || (attrs.width == w && attrs.height == h))) {
    win = children[j];
    break;
    XFree(children);
    if (j == n) {
    break;
    return win;
    void create_gc(void)
    XGCValues values;
    values.graphics_exposures = 0;
    values.function = GXcopy;
    window.gc = XCreateGC(display, window.drawable,
    GCFunction | GCGraphicsExposures, &values);
    //Get current desktop number
    static inline void get_x11_desktop_current(Display *current_display, Window root, Atom atom)
    Atom actual_type;
    int actual_format;
    unsigned long nitems;
    unsigned long bytes_after;
    unsigned char *prop = NULL;
    struct information *current_info = &info;
    if (atom == None) return;
    if ( (XGetWindowProperty( current_display, root, atom,
    0, 1L, False, XA_CARDINAL,
    &actual_type, &actual_format, &nitems,
    &bytes_after, &prop ) == Success ) &&
    (actual_type == XA_CARDINAL) &&
    (nitems == 1L) && (actual_format == 32) ) {
    current_info->x11.desktop.current = prop[0]+1;
    if(prop) {
    XFree(prop);
    //Get total number of available desktops
    static inline void get_x11_desktop_number(Display *current_display, Window root, Atom atom)
    Atom actual_type;
    int actual_format;
    unsigned long nitems;
    unsigned long bytes_after;
    unsigned char *prop = NULL;
    struct information *current_info = &info;
    if (atom == None) return;
    if ( (XGetWindowProperty( current_display, root, atom,
    0, 1L, False, XA_CARDINAL,
    &actual_type, &actual_format, &nitems,
    &bytes_after, &prop ) == Success ) &&
    (actual_type == XA_CARDINAL) &&
    (nitems == 1L) && (actual_format == 32) ) {
    current_info->x11.desktop.number = prop[0];
    if(prop) {
    XFree(prop);
    //Get all desktop names
    static inline void get_x11_desktop_names(Display *current_display, Window root, Atom atom)
    Atom actual_type;
    int actual_format;
    unsigned long nitems;
    unsigned long bytes_after;
    unsigned char *prop = NULL;
    struct information *current_info = &info;
    if (atom == None) return;
    if ( (XGetWindowProperty( current_display, root, atom,
    0, (~0L), False, ATOM(UTF8_STRING),
    &actual_type, &actual_format, &nitems,
    &bytes_after, &prop ) == Success ) &&
    (actual_type == ATOM(UTF8_STRING)) &&
    (nitems > 0L) && (actual_format == 8) ) {
    if(current_info->x11.desktop.all_names) {
    free(current_info->x11.desktop.all_names);
    current_info->x11.desktop.all_names = NULL;
    current_info->x11.desktop.all_names = malloc(nitems*sizeof(char));
    memcpy(current_info->x11.desktop.all_names, prop, nitems);
    current_info->x11.desktop.nitems = nitems;
    if(prop) {
    XFree(prop);
    //Get current desktop name
    static inline void get_x11_desktop_current_name(char *names)
    struct information *current_info = &info;
    unsigned int i = 0, j = 0;
    int k = 0;
    while ( i < current_info->x11.desktop.nitems ) {
    if ( names[i++] == '\0' ) {
    if ( ++k == current_info->x11.desktop.current ) {
    if (current_info->x11.desktop.name) {
    free(current_info->x11.desktop.name);
    current_info->x11.desktop.name = NULL;
    current_info->x11.desktop.name = malloc((i-j)*sizeof(char));
    //desktop names can be empty but should always be not null
    strcpy( current_info->x11.desktop.name, (char *)&names[j] );
    break;
    j = i;
    void get_x11_desktop_info(Display *current_display, Atom atom)
    Window root;
    static Atom atom_current, atom_number, atom_names;
    struct information *current_info = &info;
    XWindowAttributes window_attributes;
    root = RootWindow(current_display, current_info->x11.monitor.current);
    /* Check if we initialise else retrieve changed property */
    if (atom == 0) {
    atom_current = XInternAtom(current_display, "_NET_CURRENT_DESKTOP", True);
    atom_number = XInternAtom(current_display, "_NET_NUMBER_OF_DESKTOPS", True);
    atom_names = XInternAtom(current_display, "_NET_DESKTOP_NAMES", True);
    get_x11_desktop_current(current_display, root, atom_current);
    get_x11_desktop_number(current_display, root, atom_number);
    get_x11_desktop_names(current_display, root, atom_names);
    get_x11_desktop_current_name(current_info->x11.desktop.all_names);
    /* Set the PropertyChangeMask on the root window, if not set */
    XGetWindowAttributes(display, root, &window_attributes);
    if (!(window_attributes.your_event_mask & PropertyChangeMask)) {
    XSetWindowAttributes attributes;
    attributes.event_mask = window_attributes.your_event_mask | PropertyChangeMask;
    XChangeWindowAttributes(display, root, CWEventMask, &attributes);
    XGetWindowAttributes(display, root, &window_attributes);
    } else {
    if (atom == atom_current) {
    get_x11_desktop_current(current_display, root, atom_current);
    get_x11_desktop_current_name(current_info->x11.desktop.all_names);
    } else if (atom == atom_number) {
    get_x11_desktop_number(current_display, root, atom_number);
    } else if (atom == atom_names) {
    get_x11_desktop_names(current_display, root, atom_names);
    get_x11_desktop_current_name(current_info->x11.desktop.all_names);
    void update_x11info(void)
    struct information *current_info = &info;
    if (x_initialised != YES)
    return;
    current_info->x11.monitor.number = XScreenCount(display);
    current_info->x11.monitor.current = XDefaultScreen(display);
    #ifdef OWN_WINDOW
    /* reserve window manager space */
    void set_struts(int sidenum)
    Atom strut;
    if ((strut = ATOM(_NET_WM_STRUT)) != None) {
    /* reserve space at left, right, top, bottom */
    signed long sizes[12] = {0};
    int i;
    /* define strut depth */
    switch (sidenum) {
    case 0:
    /* left side */
    sizes[0] = window.x + window.width;
    break;
    case 1:
    /* right side */
    sizes[1] = display_width - window.x;
    break;
    case 2:
    /* top side */
    sizes[2] = window.y + window.height;
    break;
    case 3:
    /* bottom side */
    sizes[3] = display_height - window.y;
    break;
    /* define partial strut length */
    if (sidenum <= 1) {
    sizes[4 + (sidenum*2)] = window.y;
    sizes[5 + (sidenum*2)] = window.y + window.height;
    } else if (sidenum <= 3) {
    sizes[4 + (sidenum*2)] = window.x;
    sizes[5 + (sidenum*2)] = window.x + window.width;
    /* check constraints */
    for (i = 0; i < 12; i++) {
    if (sizes[i] < 0) {
    sizes[i] = 0;
    } else {
    if (i <= 1 || i >= 8) {
    if (sizes[i] > display_width) {
    sizes[i] = display_width;
    } else {
    if (sizes[i] > display_height) {
    sizes[i] = display_height;
    XChangeProperty(display, window.window, strut, XA_CARDINAL, 32,
    PropModeReplace, (unsigned char *) &sizes, 4);
    if ((strut = ATOM(_NET_WM_STRUT_PARTIAL)) != None) {
    XChangeProperty(display, window.window, strut, XA_CARDINAL, 32,
    PropModeReplace, (unsigned char *) &sizes, 12);
    #endif /* OWN_WINDOW */
    #ifdef HAVE_XDBE
    void xdbe_swap_buffers(void)
    if (use_xdbe) {
    XdbeSwapInfo swap;
    swap.swap_window = window.window;
    swap.swap_action = XdbeBackground;
    XdbeSwapBuffers(display, &swap, 1);
    #endif /* HAVE_XDBE */
    I guess this is one of the important bits:
    switch (window.type) {
    case TYPE_DESKTOP:
    prop = ATOM(_NET_WM_WINDOW_TYPE_DESKTOP);
    fprintf(stderr, PACKAGE_NAME": window type - desktop\n");
    fflush(stderr);
    break;
    Reading the NET_WM spec (which all major WMs use as the standard more or less) does not tell me anything meaningful (at least not for me ):
    _NET_WM_WINDOW_TYPE_DESKTOP indicates a desktop feature. This can include a single window containing desktop icons with the same dimensions as the screen, allowing the desktop environment to have full control of the desktop, without the need for proxying root window clicks.
    If anyone could tell me what to replace, that would be great .

    Hi lewisspindlove,
    Thanks for your input,
    it doesn't happen when i have my desktop in a "single picture" mode, and,
    it doesn't happen on other accounts, because besides mine(Admin), there is only
    the Guest account and this does not occur on that account.
    I tried your method of removing the wallpapers folder from Libary, then I
    noticed that the computer will select ANY image which I last used when in
    "single picture" mode, not "Change picture every 5mins" mode.
    For example, let's say I have a picture which I saved in the Documents folder,
    and I use that in "single picture" mode; after which I revert back to the folder which contains the pictures I want for "Change picture every 5mins" mode (which is stored somewhere else).
    If i go to the Login window & log back in again, the computer selects the picture
    I last used (the one in the Documents folder) as my background, BUT, after 5mins the picture changes to the ones I'm using for "Change picture every 5mins".
    I hope I'm not confusing everyone!
    This is a complicated & weird but ANNOYING problem!
    Any ideas if an Archive & Install would help? Does that erase all of my stored data on my HDD?

  • Error: [129]: transaction rolled back by an internal error:  [129] transaction rolled back by an internal error: exception 141000274: exception 141000274: TRexUtils/ParallelDispatcher.cpp:275 message not found; $message$=

    Hello Gurus,
    I have a couple of calculation views in HANA and each of them has text fields (like Employee Name, Country Name etc.).
    As part of my project requirement, I have join those two views and get all the fields that exist in them.
    When I am doing so, I am getting a weird error as shown below.
    Error: [129]: transaction rolled back by an internal error:  [129] transaction rolled back by an internal error: exception 141000274: exception 141000274:
    TRexUtils/ParallelDispatcher.cpp:275
    message not found; $message$='TSR HTKD JFSDFM'
    Please check lines: 59,
    Upon, researching further, I could see that the value 'TSR HTKD JFSDFM' is the value in text field of Employee Name.
    I did try to increase the length of the field and change the data types but nothing has worked.
    Could you please help me in getting this one resolved.
    Thanks,
    Raviteja

    Hi,
    I am exactly facing the same issue:
    Error: [129]: transaction rolled back by an internal error:  [129] transaction rolled back by an internal error: exception 141000274:
    But i found a fix :-) .....
    This may be a very late reply but it would help people who desperately searching for an answer for this issue.
    I used CAST function .. The problem is, we are selecting data from table and of course we dont know the size of the data (attribute) @ runtime. We assign the length by looking at the table attr length or view op attr length. But what happens is the junk data which exceeds the limit of the allocated space hence we get this error.
    So i used CAST function to truncate the excess junk values (may be spaces).
    Example:
    I have a ATTR view of date in the format YYYY-MM-DD which means 10 char size.
    In my CALC view I have created date OP column of VARCHAR(10) but I get the above error for no reason. Eventhoug i am 100% sure about my ATTR date would be max of 10 char my CALC view is failing @ runtime.
    So i did a CAST on date as CAST(my_date as varchar(10)) and the magic happend. It works .......
    But you need to be careful in using this because if you use CAST you may lose data. Careful. In my case i dont.
    Somebody from HANA team should look at this issue from SAP and solve this. I am sure it is a serious bug from HANA (eventhough i am using SAP HANA SP09 Rev 92 the most latest as of today !!!!!!!!!! )
    Enjoy....
    Thanks & Regards
    Prakash K

  • Java Text Editor

    I have created an applet editor that will enable a user to break a text file down into a series of smaller html files. This does serve a purpose that is not really important at the moment and I don't want to bore you all.
    The problem I am having is that upon clicking the open button and the 2 save buttons, the applet opens file chooser where you can select a file. The problem is that once the file is open, the applet, for some reason starts the openfile() method again. The same happens when using the the 2 saveFile() methods. Can anyone help?
    package tagger;
    import java.awt.*;
    import java.applet.*;
    import javax.swing.JComboBox;
    import javax.swing.JPanel;
    import javax.swing.JButton;
    import javax.swing.text.Document;
    import javax.swing.JTextArea;
    import javax.swing.JTextField;
    import javax.swing.JScrollPane;
    import javax.swing.SwingConstants;
    import javax.swing.JLabel;
    import java.io.*;
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    import java.net.*;
    import java.net.URL;
    import java.io.IOException;
    import java.io.DataInputStream;
    import javax.swing.filechooser.FileFilter;
    * <p>Title: Cheshire Parish Register Database Note Tagging System</p>
    * <p>Description: An online Text Editor and Note Creation Tool for use with
    * CPRDB</p>
    * <p>Copyright: </p>
    * <p>Company: The University Of Liverpool</p>
    * @author Mike Melling
    * @version 1.0
    public class NoteTagger extends Applet {
        public String fileName = null;
        boolean isStandalone = false;
        BorderLayout borderLayout1 = new BorderLayout();
        JPanel jPanel1 = new JPanel();
        BorderLayout borderLayout2 = new BorderLayout();
        JPanel jPanel2 = new JPanel();
        JPanel jPanel3 = new JPanel();
        JPanel jPanel4 = new JPanel();
        JPanel jPanel5 = new JPanel();
        JPanel jPanel6 = new JPanel();
        BorderLayout borderLayout3 = new BorderLayout();
        BorderLayout borderLayout4 = new BorderLayout();
        BorderLayout borderLayout6 = new BorderLayout();
        BorderLayout borderLayout7 = new BorderLayout();
        JScrollPane jScrollPane1 = new JScrollPane();
        JTextArea jTextArea1 = new JTextArea();
        JScrollPane jScrollPane2 = new JScrollPane();
        JTextArea jTextArea4 = new JTextArea();
        BorderLayout borderLayout8 = new BorderLayout();
        JPanel jPanel7 = new JPanel();
        JPanel jPanel8 = new JPanel();
        JPanel jPanel9 = new JPanel();
        JPanel jPanel10 = new JPanel();
        JPanel jPanel11 = new JPanel();
        JPanel jPanel13 = new JPanel();
        JPanel jPanel14 = new JPanel();
        BorderLayout borderLayout9 = new BorderLayout();
        JPanel jPanel15 = new JPanel();
        JPanel jPanel16 = new JPanel();
        JPanel jPanel17 = new JPanel();
        JPanel jPanel18 = new JPanel();
        JPanel jPanel19 = new JPanel();
        BorderLayout borderLayout10 = new BorderLayout();
        JButton jButton2 = new JButton();
        JButton jButton1 = new JButton();
        JPanel jPanel22 = new JPanel();
        BorderLayout borderLayout12 = new BorderLayout();
        JScrollPane jScrollPane5 = new JScrollPane();
        JTextArea jTextArea3 = new JTextArea();
        JLabel jLabel1 = new JLabel();
        BorderLayout borderLayout13 = new BorderLayout();
        BorderLayout borderLayout14 = new BorderLayout();
        FlowLayout flowLayout1 = new FlowLayout();
        BorderLayout borderLayout15 = new BorderLayout();
        JPanel jPanel27 = new JPanel();
        Document document1 = jTextArea1.getDocument();
        Document document2 = jTextArea3.getDocument();
        JFileChooser jFileChooser1 = new JFileChooser();
        String currFileName = null; // Full path and filename. null means new/untitled.
        JPanel jPanel20 = new JPanel();
        java.awt.BorderLayout borderLayout16 = new BorderLayout();
        JPanel jPanel24 = new JPanel();
        JTextField jTextField1 = new JTextField();
        JPanel jPanel25 = new JPanel();
        java.awt.BorderLayout borderLayout18 = new BorderLayout();
        JTextField jTextField2 = new JTextField();
        JPanel jPanel26 = new JPanel();
        JPanel jPanel12 = new JPanel();
        JPanel jPanel21 = new JPanel();
        JPanel jPanel23 = new JPanel();
        JPanel jPanel28 = new JPanel();
        java.awt.BorderLayout borderLayout5 = new BorderLayout();
        JButton jButton6 = new JButton();
        JButton jButton7 = new JButton();
        JFileChooser jFileChooser2 = new JFileChooser();
        String currFileName2 = null; //Full path and filename. null means new/untitled
        JButton jButton3 = new JButton();
        public String getParameter(String key, String def) {
            return isStandalone ? System.getProperty(key, def) :
                    (getParameter(key) != null ? getParameter(key) : def);
        //Construct the applet
        public NoteTagger() {
            try {
                jbInit();
            } catch (Exception ex) {
                ex.printStackTrace();
        //Initialize the applet
        public void init() {
            try {
                jbInit();
            } catch (Exception e) {
                e.printStackTrace();
        //Component initialization
        private void jbInit() throws Exception {
            jPanel1.setLayout(borderLayout2);
            jPanel5.setLayout(borderLayout3);
            jPanel2.setLayout(borderLayout13);
            jPanel6.setLayout(borderLayout14);
            jPanel3.setLayout(borderLayout6);
            jPanel4.setLayout(borderLayout7);
            jTextArea1.setLineWrap(true);
            jPanel3.setPreferredSize(new Dimension(700, 100));
            jPanel4.setBackground(Color.lightGray);
            jPanel4.setPreferredSize(new Dimension(700, 50));
            jTextArea4.setPreferredSize(new Dimension(700, 100));
            jTextArea4.setEditable(false);
            jTextArea4.setText("");
            jScrollPane2.setVerticalScrollBarPolicy(JScrollPane.
                                                    VERTICAL_SCROLLBAR_ALWAYS);
            jScrollPane2.setPreferredSize(new Dimension(700, 100));
            this.setLayout(borderLayout8);
            jPanel2.setBackground(Color.lightGray);
            jPanel2.setPreferredSize(new Dimension(700, 850));
            jPanel7.setBackground(Color.lightGray);
            jPanel8.setBackground(Color.lightGray);
            jPanel9.setBackground(Color.lightGray);
            jPanel10.setBackground(Color.lightGray);
            jPanel11.setBackground(Color.lightGray);
            jScrollPane1.setVerticalScrollBarPolicy(JScrollPane.
                                                    VERTICAL_SCROLLBAR_ALWAYS);
            jScrollPane1.setMinimumSize(new Dimension(300, 470));
            jScrollPane1.setPreferredSize(new Dimension(470, 470));
            jPanel13.setBackground(Color.lightGray);
            jPanel14.setBackground(Color.lightGray);
            jPanel14.setLayout(borderLayout9);
            jPanel15.setBackground(Color.lightGray);
            jPanel15.setLayout(borderLayout10);
            jPanel16.setBackground(Color.lightGray);
            jPanel16.setPreferredSize(new Dimension(10, 7));
            jPanel19.setBackground(Color.lightGray);
            jPanel18.setBackground(Color.lightGray);
            jPanel18.setPreferredSize(new Dimension(280, 33));
            jPanel18.setLayout(flowLayout1);
            jPanel17.setBackground(Color.lightGray);
            jButton2.setBackground(Color.lightGray);
            jButton2.setPreferredSize(new Dimension(83, 23));
            jButton2.setHorizontalAlignment(SwingConstants.CENTER);
            jButton2.setHorizontalTextPosition(SwingConstants.CENTER);
            jButton2.setText("Open");
            jButton2.addActionListener(new NoteTagger_jButton2_actionAdapter(this));
            jPanel5.setPreferredSize(new Dimension(500, 560));
            jPanel6.setBackground(Color.lightGray);
            jPanel6.setMinimumSize(new Dimension(217, 550));
            jPanel6.setPreferredSize(new Dimension(500, 560));
            jPanel22.setBackground(Color.lightGray);
            jPanel22.setLayout(borderLayout15);
            jScrollPane5.setHorizontalScrollBarPolicy(JScrollPane.
                                                      HORIZONTAL_SCROLLBAR_AS_NEEDED);
            jScrollPane5.setVerticalScrollBarPolicy(JScrollPane.
                                                    VERTICAL_SCROLLBAR_ALWAYS);
            jScrollPane5.setMaximumSize(new Dimension(32767, 245));
            jScrollPane5.setMinimumSize(new Dimension(300, 470));
            jScrollPane5.setPreferredSize(new Dimension(300, 470));
            jLabel1.setFont(new java.awt.Font("Dialog", Font.PLAIN, 20));
            jLabel1.setToolTipText("");
            jLabel1.setHorizontalAlignment(SwingConstants.CENTER);
            jLabel1.setHorizontalTextPosition(SwingConstants.CENTER);
            jLabel1.setText("Cheshire Parish Register Database Note Tagging System");
            jPanel27.setBackground(Color.lightGray);
            jTextArea3.setMaximumSize(new Dimension(2147483647, 2147483647));
            jTextArea1.setDocument(document1);
            jTextArea3.setMaximumSize(new Dimension(2147483647, 2147483647));
            jTextArea3.setDocument(document2);
            jButton1.setBackground(Color.lightGray);
            jButton1.setPreferredSize(new Dimension(83, 23));
            jButton1.setHorizontalAlignment(SwingConstants.CENTER);
            jButton1.setHorizontalTextPosition(SwingConstants.CENTER);
            jButton1.setText("Save");
            jButton1.addActionListener(new NoteTagger_jButton1_actionAdapter(this));
            jButton1.setEnabled(false);
            this.setBackground(Color.lightGray);
            jPanel1.setBorder(BorderFactory.createRaisedBevelBorder());
            jPanel1.setPreferredSize(new Dimension(1000, 750));
            jPanel20.setLayout(borderLayout16);
            jTextField1.setPreferredSize(new Dimension(62, 25));
            jTextField1.setText("");
            jPanel24.setBackground(Color.lightGray);
            jPanel24.setMaximumSize(new Dimension(10, 10));
            jPanel25.setLayout(borderLayout18);
            jTextField2.setMaximumSize(new Dimension(62, 25));
            jTextField2.setPreferredSize(new Dimension(62, 25));
            jTextField2.setText("");
            jPanel26.setBackground(Color.lightGray);
            jPanel26.setMaximumSize(new Dimension(10, 10));
            jPanel25.setPreferredSize(new Dimension(470, 505));
            jPanel12.setPreferredSize(new Dimension(300, 40));
            jPanel12.setLayout(borderLayout5);
            jPanel28.setBackground(Color.lightGray);
            jPanel21.setBackground(Color.lightGray);
            jPanel23.setBackground(Color.lightGray);
            jButton6.setBackground(Color.lightGray);
            jButton6.setPreferredSize(new Dimension(83, 23));
            jButton6.setText("Save");
            jButton6.setEnabled(false);
            jButton6.addActionListener(new NoteTagger_jButton6_actionAdapter(this));
            jButton7.setBackground(Color.lightGray);
            jButton7.setPreferredSize(new Dimension(83, 23));
            jButton7.setText("Query");
            jButton7.addActionListener(new NoteTagger_jButton7_actionAdapter(this));
            jFileChooser1.addChoosableFileFilter( new FileFilter1() );
            jFileChooser1.setAcceptAllFileFilterUsed( false );
            jFileChooser1.setMultiSelectionEnabled( false );
            jFileChooser1.setSelectedFile( null );
            jFileChooser2.addChoosableFileFilter( new FileFilter2() );
            jFileChooser2.setAcceptAllFileFilterUsed( false );
            jFileChooser2.setMultiSelectionEnabled( false );
            jFileChooser2.setSelectedFile( null );
            jButton3.setMaximumSize(new Dimension(83, 23));
            jButton3.setMinimumSize(new Dimension(83, 23));
            jButton3.setPreferredSize(new Dimension(83, 23));
            jButton3.setText("New");
            jButton3.addActionListener(new NoteTagger_jButton3_actionAdapter(this));
            jPanel1.add(jPanel2, java.awt.BorderLayout.CENTER);
            jPanel1.add(jPanel3, java.awt.BorderLayout.SOUTH);
            jScrollPane2.getViewport().add(jTextArea4);
            this.add(jPanel1, java.awt.BorderLayout.CENTER);
            jPanel3.add(jScrollPane2, java.awt.BorderLayout.CENTER);
            jPanel3.add(jPanel8, java.awt.BorderLayout.SOUTH);
            jPanel3.add(jPanel9, java.awt.BorderLayout.WEST);
            jPanel3.add(jPanel10, java.awt.BorderLayout.EAST);
            jPanel3.add(jPanel11, java.awt.BorderLayout.NORTH);
            jPanel5.add(jPanel7, java.awt.BorderLayout.WEST);
            jPanel5.add(jPanel13, java.awt.BorderLayout.EAST);
            jPanel5.add(jPanel20, java.awt.BorderLayout.CENTER);
            jPanel14.add(jPanel16, java.awt.BorderLayout.SOUTH);
            jPanel14.add(jPanel15, java.awt.BorderLayout.NORTH);
            jPanel15.add(jPanel19, java.awt.BorderLayout.WEST);
            jPanel15.add(jPanel17, java.awt.BorderLayout.EAST);
            jPanel15.add(jPanel18, java.awt.BorderLayout.CENTER);
            jPanel4.add(jLabel1, java.awt.BorderLayout.CENTER);
            jPanel18.add(jButton2);
            jPanel18.add(jButton1);
            jPanel20.add(jTextField1, java.awt.BorderLayout.NORTH);
            jPanel5.add(jPanel14, java.awt.BorderLayout.NORTH);
            jScrollPane1.getViewport().add(jTextArea1);
            jPanel25.add(jScrollPane5, java.awt.BorderLayout.SOUTH);
            jPanel25.add(jTextField2, java.awt.BorderLayout.NORTH);
            jPanel25.add(jPanel26, java.awt.BorderLayout.CENTER);
            jPanel6.add(jPanel12, java.awt.BorderLayout.NORTH);
            jScrollPane5.getViewport().add(jTextArea3);
            jPanel6.add(jPanel27, java.awt.BorderLayout.EAST);
            jPanel1.add(jPanel4, java.awt.BorderLayout.NORTH);
            jPanel1.add(jPanel5, java.awt.BorderLayout.WEST);
            jPanel1.add(jPanel6, java.awt.BorderLayout.EAST);
            jPanel6.add(jPanel22, java.awt.BorderLayout.WEST);
            jPanel6.add(jPanel25, java.awt.BorderLayout.CENTER);
            jPanel12.add(jPanel28, java.awt.BorderLayout.WEST);
            jPanel21.add(jButton7);
            jPanel21.add(jButton6);
            jPanel21.add(jButton3);
            jPanel12.add(jPanel23, java.awt.BorderLayout.EAST);
            jPanel12.add(jPanel21, null);
            jPanel20.add(jPanel24, java.awt.BorderLayout.CENTER);
            jPanel20.add(jScrollPane1, java.awt.BorderLayout.SOUTH);
        //Start the applet
        public void start() {
        //Stop the applet
        public void stop() {
        //Destroy the applet
        public void destroy() {
        //Get Applet information
        public String getAppletInfo() {
            return "Applet Information";
        //Get parameter info
        public String[][] getParameterInfo() {
            return null;
        // Open named file; read text from file into jTextArea1; report to statusBar.
         void openFile(String fileName) {
             try {
                 // Open a file of the given name.
                 File file = new File(fileName);
                 // Get the size of the opened file.
                 int size = (int) file.length();
                 // Set to zero a counter for counting the number of
                 // characters that have been read from the file.
                 int chars_read = 0;
                 // Create an input reader based on the file, so we can read its data.
                 // FileReader handles international character encoding conversions.
                 FileReader in = new FileReader(file);
                 // Create a character array of the size of the file,
                 // to use as a data buffer, into which we will read
                 // the text data.
                 char[] data = new char[size];
                 // Read all available characters into the buffer.
                 while (in.ready()) {
                     // Increment the count for each character read,
                     // and accumulate them in the data buffer.
                     chars_read += in.read(data, chars_read, size - chars_read);
                 in.close();
                 // Create a temporary string containing the data,
                 // and set the string into the JTextArea.
                 jTextArea1.setText(new String(data, 0, chars_read));
                 // Cache the currently opened filename for use at save time...
                 this.currFileName = fileName;
                 jButton1.setEnabled(true);
            jTextArea4.append('\n'+"Opnened "+ currFileName);
      catch (IOException e) {
        jTextArea4.append('\n'+"Error opening "+fileName);
        // Save current file; handle not yet having a filename; report to statusBar.
    boolean saveFile() {
        // Handle the case where we don't have a file name yet.
        if (currFileName == null) {
            return saveAsFile();
        try {
        // Open a file of the current name.
        File file = new File (currFileName);
        // Create an output writer that will write to that file.
        // FileWriter handles international characters encoding conversions.
        FileWriter out = new FileWriter(file);
        String text = jTextArea1.getText();
        out.write(text);
        out.close();
        jButton1.setEnabled(false);
                return true;
      catch (IOException e) {
        jTextArea4.append('\n'+"Error saving "+ currFileName);
      return false;
        // Save current file; handle not yet having a filename; report to statusBar.
        boolean saveFile2() {
            // Handle the case where we don't have a file name yet.
        if (currFileName2 == null) {
            return saveAsFile2();
        try {
        // Open a file of the current name.
        File file = new File (currFileName2);
        // Create an output writer that will write to that file.
        // FileWriter handles international characters encoding conversions.
        FileWriter out = new FileWriter(file);
        String text = jTextArea3.getText();
        out.write(text);
        out.close();
        jButton7.setEnabled(false);
                return true;
      catch (IOException e) {
        jTextArea4.append('\n'+"Error saving "+ currFileName2);
      return false;
        // Save current file, asking user for new destination name.
    // Report to statusBar.
        boolean saveAsFile() {
          // Use the SAVE version of the dialog, test return for Approve/Cancel
          if (JFileChooser.APPROVE_OPTION == jFileChooser1.showSaveDialog(this)) {
            // Set the current file name to the user's selection,
            // then do a regular saveFile
            currFileName = jFileChooser1.getSelectedFile().getPath();
            //repaints menu after item is selected
            this.repaint();
            return saveFile();
          else {
            this.repaint();
            return false;
        // Save current file, asking user for new destination name.
    // Report to statusBar.
        boolean saveAsFile2() {
          // Use the SAVE version of the dialog, test return for Approve/Cancel
          if (JFileChooser.APPROVE_OPTION == jFileChooser2.showSaveDialog(this)) {
            // Set the current file name to the user's selection,
            // then do a regular saveFile
            currFileName2 = jFileChooser2.getSelectedFile().getPath();
            //repaints menu after item is selected
            this.repaint();
            return saveFile();
          else {
            this.repaint();
            return false;
        public void jButton1_actionPerformed(ActionEvent e) {
            saveFile();
            // Display the name of the saved directory+file in the statusBar.
            jTextArea4.append('\n'+"Saved to " + currFileName);
        public void jButton7_actionPerformed(ActionEvent e) {
            try{
                getAppletContext().showDocument(new URL("http://www.csc.liv.ac.uk/~cprdb/Live/v3.3/database.html"), "_blank" );
            catch (MalformedURLException ex)
                ex.printStackTrace();
            jButton6.setEnabled(true);
        public void jButton6_actionPerformed(ActionEvent e) {
            saveFile2();
            // Display the name of the saved directory+file in the statusBar.
            jTextArea4.append('\n'+"Saved to " + currFileName2);
        public void jButton3_actionPerformed(ActionEvent e) {
         // Handle the File|New menu item.
         // Clears the text of the text area.
         jTextArea3.setText("");
         currFileName2 = null;
         jButton6.setEnabled(true);
         jButton7.setEnabled(false);
        public void jButton2_actionPerformed(ActionEvent e) {
                // Use the OPEN version of the dialog, test return for Approve/Cancel
            if (JFileChooser.APPROVE_OPTION == jFileChooser1.showOpenDialog(this)) {
        // Call openFile to attempt to load the text from file into TextArea
                openFile(jFileChooser1.getSelectedFile().getPath());
                  this.repaint();
    class NoteTagger_jButton3_actionAdapter implements ActionListener {
        private NoteTagger adaptee;
        NoteTagger_jButton3_actionAdapter(NoteTagger adaptee) {
            this.adaptee = adaptee;
        public void actionPerformed(ActionEvent e) {
            adaptee.jButton3_actionPerformed(e);
    class NoteTagger_jButton6_actionAdapter implements ActionListener {
            private NoteTagger adaptee;
            NoteTagger_jButton6_actionAdapter(NoteTagger adaptee) {
                this.adaptee = adaptee;
            public void actionPerformed(ActionEvent e) {
                adaptee.jButton6_actionPerformed(e);
        class NoteTagger_jButton7_actionAdapter implements ActionListener {
            private NoteTagger adaptee;
            NoteTagger_jButton7_actionAdapter(NoteTagger adaptee) {
                this.adaptee = adaptee;
            public void actionPerformed(ActionEvent e) {
                adaptee.jButton7_actionPerformed(e);
    class NoteTagger_jButton2_actionAdapter implements ActionListener {
        private NoteTagger adaptee;
        NoteTagger_jButton2_actionAdapter(NoteTagger adaptee) {
            this.adaptee = adaptee;
        public void actionPerformed(ActionEvent e) {
            adaptee.jButton2_actionPerformed(e);
    class NoteTagger_jButton1_actionAdapter implements ActionListener {
        private NoteTagger adaptee;
        NoteTagger_jButton1_actionAdapter(NoteTagger adaptee) {
            this.adaptee = adaptee;
        public void actionPerformed(ActionEvent e) {
            adaptee.jButton1_actionPerformed(e);
    class FileSelectorUtils {
              public static String getExtension( File file ) {
              return getExtension( file.getName() );
                    private static String getExtension( String str ) {
              String ext = null;
              int i = str.lastIndexOf( '.' );
                  if( i > 0 && i < str.length() - 1) {
                     ext = str.substring( i + 1 ).toLowerCase();
              return ext;
              public static File ensureExtension( File file, String ext ) {
                  if( getExtension( file ) == null ) {
                      file = new File( file.getAbsolutePath() + "." + ext );
                  return file;
          class FileFilter1 extends FileFilter {
             // Valid File Extension
             public final static String txt = "txt";
                  public boolean accept( File f ) {
             // Display Directory
             if( f.isDirectory() ) { return true; }
             // Get File's Extension
             String extension = FileSelectorUtils.getExtension( f );
             // Accept Select File Extensions
             if( extension != null ) {
    if( extension.equals( FileFilter1.txt ) ) { return true; } // Accept *.ann
            // Else Deny File
            return false;
            public String getDescription() {
            return "Text Doument (*.txt)";
            class FileFilter2 extends FileFilter {
             // Valid File Extension
             public final static String html = "html";
                  public boolean accept( File f ) {
             // Display Directory
             if( f.isDirectory() ) { return true; }
             // Get File's Extension
             String extension = FileSelectorUtils.getExtension( f );
             // Accept Select File Extensions
             if( extension != null ) {
    if( extension.equals( FileFilter2.html ) ) { return true; } // Accept *.ann
            // Else Deny File
            return false;
            public String getDescription() {
            return "HTML Document (*.html)";
            }Any ideas? I could do with help ASAP if anybody has any ideas... Thanks
    Mike

    The apps listed at java-tips.org are just some of those that happen to be written in Java. If you want an editor that does syntax highlighting and other programming-specific tasks, you have dozens more options. A few Windows editors that spring to mind are EditPad, Crimson Editor, Scite, UltraEdit and Notetab. Then there are the old Unix standys, Emacs and vi, which have Windows versions as well. I use EditPad Pro, which isn't free like many of the others, but is worth the money anyway, IMO.

  • Where are the actual documents stored in solution manager (KW)?

    Hello,
    I have a question regarding Solution Manager and storing documentation.
    When we in our process structure in a project uploads a word document
    (as documentation), where are the file then physically stored?
    I have checked the table SA01PHIO (a KW table), here I see a new entry every time I
    upload a new word document (or other type of documentation). But this
    table does not grow accordingly to the size of the word documents I
    upload, so the physical document must be stored somewhere else in the
    database.
    The description of field 'PHIO_ID' in table SA01PHIO is "Physical document", but since the field is of type char (size 32), then it can only be a link to the actual file?
    We need to know where the documents are stored, so that we can plan our
    storage strategy and database space management accordingly.
    Anyone knows where the files are stored in the database?
    Thanks in advance.
    Regards

    Samuli,
    Thank you for your help.
    After further searches, I have found exactly what I was looking for.
    Samuli, as you said, documents are stored in table SACONT01, but I did not understand how they were stored, as all the data you have in this table is something like:
    FF06010102028000343130320000000074040000121F9D02A37D7259692086C2F0D7761017222...
    So the information can be benefit to other people searching, I will share it here.
    The string of alpha-numeric characters you see above is a "part" of the document.
    Document data is cut into clusters, and stored in table SACONT01 (in field CLUSTD, coupled with CLUSTR).
    In order to retrieve all the clusters for a given document, you need to get its logical ID (LOIO - LOgical Information on Object):
    - Select the document (SOLAR01/02 for projects, SOLMAN_DIRECTORY for solutions)
    - Enter DOC_INFO in the transaction code field
    - Copy the Object ID
    In table SA01PHIO, retrieve the physical id(s) from the logical id (PHIO - PHysical Information on Object).
    Search SACONT01 with the physical id(s).
    Just as an example:
    - 340 entries for a Word document (about 50 pages)
    - 57000 entries for a video (200 MB)
    Hope it will help.
    Regards,
    Rémi.

Maybe you are looking for

  • Set sequence to low res, chromakey and then render full res

    I have a sequence (original footage is DV50) and I'm working with stills for background. Everytime I do something, I have to re-render. I'd like to set the sequence to a setting where I can put down all my assets, set ins and outs (with fades and stu

  • Change footnotes to endnotes in InDesign CC?

    I am working on a book project with extensive footnotes. The author has requested that they be changed to endnotes, and be broken up by chapters.  (so that in each chapter the first endnote will be numbered 1) Is there an efficient way to do this for

  • Site definition files? anyone?

    OK so I am new to website creation, so please cut me some slack. Using Dreamweaver CS3 on a Mac, in the manage sites window, none of the sites I created with Dreamweaver 8 are shown, yet they all reside in a local sites folder in my documents folder.

  • Whole database offline + redo log backup  Scheduling failed

    Hi Experts,          In DB13 I have the following Issue,  Whole database offline + redo log backup  Scheduling failed. How to solve this.

  • AS2.0 : Infinite recursion loop error when launching debugger

    I want to debug a project: When I run it from Flash, it doesn't work as expected but it doesn't display any compiling nor runtime error. But when I want to debug it and press the Play button of the debugger, it displays an infinite recursion loop err