Strange Component behaviour - Possibility to reinizialize Components
Hi, there!
Me and my team are developing a big application and ran into some strange problems.
We are using an mxml-File to layout one of our screens containing some custom components.
After creationComplete appears and the user selects an workitem VO we feed
the custom components with the data to apply and show some alternating behaviour.
The Problem was that one of the custom components appears to be randomly null during
runtime. As example we call some methodes of the component, everything works.
Then an other one and the component throws an null-pointer exception. Debug-Mode
tells us that the component itself is null. Until now we had no chance to find out why this is
happening, so we tried to recreate the missing component when it was null.
Problem is the definition of the component contains a lot of bindings and relations to other components that
are relativly painful to set in actionscript. So my Question is if there is a possibility to reinitialize
a mxml-file? I didn't find anything on this topic.
Thx in advance!
Florian
Well, I suspect there is a lot going on.
You can force the component to refresh by calling invalidateDisplayList(). You can force it to resize itself using invalidateSize(). You can force the componen to re-evaluate properties using invalidateProperties().
If data you're passing into the component is null, though, I wouldn't expect any of those things to address the issue.
You can also create a new instance of your custom component and add it to your container. That will, definitely, reinitialize everything.
Without seeing any of your code, it's hard to pinpoint what could be the error.
Similar Messages
-
Strange memory behaviour using the System.Collections.Hashtable in object reference
Dear all,
Recently I came across a strange memory behaviour when comparing the system.collections.hashtable versus de scripting.dictionary object and thought to analyse it a bit in depth. First I thought I incorrectly destroyed references to the class and
child classes but even when properly destroying them (and even implemented a "SafeObject" with deallocate method) I kept seeing strange memory behaviour.
Hope this will help others when facing strange memory usage BUT I dont have a solution to the problem (yet) suggestions are welcome.
Setting:
I have a parent class that stores data in child classes through the use of a dictionary object. I want to store many differenct items in memory and fetching or alteging them must be as efficient as possible using the dictionary ability of retrieving key
/ value pairs. When the child class (which I store in the dictionary as value) contains another dictionary object memory handeling is as expected where all used memory is release upon the objects leaving scope (or destroyed via code). When I use a system.collection.hashtable
no memory is released at all though apears to have some internal flag that marks it as useable for another system.collection.hashtable object.
I created a small test snippet of code to test this behaviour with (running excel from the Office Plus 2010 version) The snippet contains a module to instantiate the parent class and child classes that will contain the data. One sub will test the Hash functionality
and the other sub will test the dictionary functionality.
Module1
Option Explicit
Sub testHash()
Dim Parent As parent_class
Dim d_Count As Double
'Instantiate parent class
Set Parent = New parent_class
'Create a child using the hash collection object
Parent.AddChildHash "TEST_hash"
Dim d_CycleCount As Double
d_CycleCount = 50000
'Add dummy data records to the child container with x amount of data For d_Count = 0 To d_CycleCount
Parent.ChildContainer("TEST_hash").InsertDataToHash CStr(d_Count), "dummy data"
Next
'Killing the parent when it goes out of scope should kill the childs. (Try it out and watch for the termination debug messages)
'According to documentation and debug messages not really required!
Set Parent.ChildContainer("TEST_hash") = Nothing
'According to documentation not really as we are leaving scope but just to be consistent.. kill the parent!
Set Parent = Nothing
End Sub
Sub testDict()
Dim Parent As parent_class
Dim d_Count As Double
'Instantiate parent class
Set Parent = New parent_class
'Create a child using the dictionary object
Parent.AddChildDict "TEST_dict"
Dim d_CycleCount As Double
d_CycleCount = 50000
'Blow up the memory with x amount of records
Dim s_SheetCycleCount As String
s_SheetCycleCount = ThisWorkbook.Worksheets("ButtonSheet").Range("K2").Value
If IsNumeric(s_SheetCycleCount) Then d_CycleCount = CDbl(s_SheetCycleCount)
'Add dummy data records to the child container
For d_Count = 0 To d_CycleCount
Parent.ChildContainer("TEST_dict").InsertDataToDict CStr(d_Count), "dummy data"
Next
'Killing the parent when it goes out of scope should kill the childs. (Try it out and watch for the termination debug messages)
'According to documentation and debug messages not really required!
Set Parent.ChildContainer("TEST_dict") = Nothing
'According to documentation not really as we are leaving scope but just to be consistent.. kill the parent!
Set Parent = Nothing
End Sub
parent_class:
Option Explicit
Public ChildContainer As Object
Private Counter As Double
Private Sub Class_Initialize()
Debug.Print "Parent initialized"
Set ChildContainer = CreateObject("Scripting.dictionary")
End Sub
Public Sub AddChildHash(ByRef ChildKey As String)
If Not ChildContainer.Exists(ChildKey) Then
Dim TmpChild As child_class_hashtable
Set TmpChild = New child_class_hashtable
ChildContainer.Add ChildKey, TmpChild
Counter = Counter + 1
Set TmpChild = Nothing
End If
End Sub
Public Sub AddChildDict(ByRef ChildKey As String)
If Not ChildContainer.Exists(ChildKey) Then
Dim TmpChild As child_class_dict
Set TmpChild = New child_class_dict
ChildContainer.Add ChildKey, TmpChild
Counter = Counter + 1
Set TmpChild = Nothing
End If
End Sub
Private Sub Class_Terminate()
Debug.Print "Parent being killed, first kill all childs (if there are any left!) - muahaha"
Set ChildContainer = Nothing
Debug.Print "Parent killed"
End Sub
child_class_dict
Option Explicit
Public MemmoryLeakObject As Object
Private Sub Class_Initialize()
Debug.Print "Child using Scripting.Dictionary initialized"
Set MemmoryLeakObject = CreateObject("Scripting.Dictionary")
End Sub
Public Sub InsertDataToDict(ByRef KeyValue As String, ByRef DataValue As String)
If Not MemmoryLeakObject.Exists(KeyValue) Then MemmoryLeakObject.Add KeyValue, DataValue
End Sub
Private Sub Class_Terminate()
Debug.Print "Child using Scripting.Dictionary terminated"
Set MemmoryLeakObject = Nothing
End Sub
child_class_hash:
Option Explicit
Public MemmoryLeakObject As Object
Private Sub Class_Initialize()
Debug.Print "Child using System.Collections.Hashtable initialized"
Set MemmoryLeakObject = CreateObject("System.Collections.Hashtable")
End Sub
Public Sub InsertDataToHash(ByRef KeyValue As String, ByRef DataValue As String)
If Not MemmoryLeakObject.ContainsKey(KeyValue) Then MemmoryLeakObject.Add KeyValue, DataValue
End Sub
Private Sub Class_Terminate()
Debug.Print "Child using System.Collections.Hashtable terminated"
Set MemmoryLeakObject = Nothing
End Sub
Statistics:
TEST: (Chronologically ordered)
1.1 Excel starting memory: 25.324 kb approximately
Max memory usage after hash (500.000 records) 84.352 kb approximately
Memory released: 0 %
1.2 max memory usages after 2nd consequtive hash usage 81.616 kb approximately
"observation:
- memory is released then reused
- less max memory consumed"
1.3 max memory usages after 3rd consequtive hash usage 80.000 kb approximately
"observation:
- memory is released then reused
- less max memory consumed"
1.4 Running the dictionary procedure after any of the hash runs will start from the already allocated memory
In this case from 80000 kb to 147000 kb
Close excel, free up memory and restart excel
2.1 Excel starting memory: 25.324 kb approximately
Max memory usage after dict (500.000 records) 90.000 kb approximately
Memory released: 91,9%
2.2 Excel starting memory 2nd consequtive dict run: 27.552 kb approximately
Max memory usage after dict (500.000 records) 90.000 kb approximately
Memory released: 99,4%
2.3 Excel starting memory 3rd consequtive dict run: 27.712 kb approximately
Max memory usage after dict (500.000 records) 90.000 kb approximately
Memory released:Hi Cor,
Thank you for going through my post and took the time to reply :) Most apreciated. The issue I am facing is that the memory is not reallocated when using mixed object types and is not behaving the same. I not understand that .net versus the older methods
use memory allocation differently and perhaps using the .net dictionary object (in stead of the scripting.dictionary) may lead to similar behaviour. {Curious to find that out -> put to the to do list of interesting thingies to explore}
I agree that allocated memory is not a bad thing as the blocks are already assigned to the program and therefore should be reallocated with more performance. However the dictionary object versus hashtable perform almost identical (and sometimes even favor
the dictionary object)
The hashtable is clearly the winner when dealing with small sets of data.
The issue arises when I am using the hash table in conjunction with another type, for example a dictionary, I see that the dictionary object's memory is stacked on top of the claimed memory space of the hashtable. It appears that .net memory allocation and
reuse is for .net references only. :) (Or so it seems)
In another example I got with the similar setup, I see that the total used memory is never released or reclaimed and leakage of around 20% allocated memory remains to eventually crash the system with the out of memory message. (This is when another class
calls the parent class that instantiates the child class but thats not the point of the question at hand)
This leakage drove me to investigate and create the example of this post in the first place. For the solution with the class -> parent class -> child class memory leak I switched all to dictionaries and no leakage occurs anymore but nevertheless thought
it may be good to share / ask if anyone else knows more :D (Never to old to learn something new) -
Strange Finder behaviour since installing Mountain Lion
I've been experiencing some strange finder behaviour since updating to Mountain Lion. Folders take several seconds to open after clicking on them (and sometimes won't open at all) and files cannot be moved around the desktop or dragged on to an app. However, it is possible to open a file by clicking on it. I've tried re-booting with Snow Leopard and everything seems OK, but as soon as I go back to ML, the problem starts again.
Library is a folder, not a file. There're more than one Library folders, one at the root and one for each user in your Mac. All of them are hidden, this is why you can't find them. But you can see their contents using
Finder Menu > Go > Go to Folder
And then type:
~/Library
for your Library Folder
-or-
/Library
for the root Library folder. -
Strange JTable behaviour - everything is highlighted
Hello all,
im experiencing some strange JTable behaviour, and im not so sure why. When i run my program, the JTable appears, but all the cells are highlighted in advance. Also, i can now only select one cell at a time. I have set myTable.setSelectionModeListSelectionModel.SINGLE_INTERVAL_SELECTION); myTable.setCellSelectionEnabled(true);and my renderer code is below. I call the renderer by using the setDefaultRenderer method with(Object.class,myRenderer).
I have also changed isCellEditable to return true. If i dont use Object.class, and try to use my own custom class, the JTable is not all highlighted, but it doesnt seem to use myRenderer, and when i click on the header of Column A, all cells from column B and beyond become highlight, which is not normal behaviour. I thought the colum you selected should be highlighted.
Sorry for the long post, i hope the above makes sense...this is really quite bizzare, and im not so sure why this is happening. Thanks for any advice you can give, regards, Rupz
import javax.swing.*;
import javax.swing.table.DefaultTableCellRenderer;
import javax.swing.border.*;
import java.awt.Component;
import java.awt.Color;
import java.awt.Rectangle;
import java.util.*;
import java.awt.*;
public class MyTableCellRenderer extends DefaultTableCellRenderer{
private Font cellFont;
private LineBorder selectBorder;
private EmptyBorder emptyBorder;
public MyTableCellRenderer() {
super();
setOpaque(true);
emptyBorder = new EmptyBorder(1, 2, 1, 2);
cellFont = new Font("Times", Font.PLAIN, 10);
setFont(cellFont);
selectBorder = new LineBorder(Color.red);
private boolean isHeaderCell(int row, int column){return column == 0;}
public Component getTableCellRendererComponent (JTable myTable, Object value, boolean isSelected, boolean hasFocus, int row, int column){
//super.getTableCellRendererComponent(myTable, value, isSelected, hasFocus,row, column);
if (isSelected){
super.setForeground(myTable.getSelectionForeground());
super.setBackground(myTable.getSelectionBackground());
setBorder(selectBorder);
else{
super.setForeground(myTable.getSelectionForeground());
super.setBackground(myTable.getSelectionBackground());
setBorder(emptyBorder);
if (hasFocus) {
setBorder(selectBorder);
if (myTable.isCellEditable(row,column)) {
super.setForeground(UIManager.getColor("Table.focusCellForeground"));
super.setBackground(UIManager.getColor("Table.focusCellBackground"));
else {setBorder(noFocusBorder);}
setValue(value, isSelected, hasFocus, row, column);
// Color bDis = getBackground();
// boolean colourEquals = (bDis != null) && (bDis.equals(myTable.getBackground()) ) & myTable.isOpaque();
// setOpaque (!colourEquals);
return this;
public void setValue (Object value, boolean hasFocus, boolean isSelected, int row, int column){
if (value instanceof myCell){
myCell foo = (myCell)value;
Object data = foo.getValue(row,column);
if (isHeaderCell(row, column)) {
//label cells are center aligned
setHorizontalAlignment(JTextField.CENTER);
}else {
if (data instanceof Number) {
//numbers are right justified
setHorizontalAlignment(JTextField.RIGHT);
}else {
//everything else is left justified
setHorizontalAlignment(JTextField.LEFT);
//value to display in table
setText((data == null) ? "" : data.toString());
else {
//not cell object so render with toString of that object
setText((value == null) ? "" : value.toString());Hi VV!
thanks for the reply - now the table isnt all highlight when loaded, but as for cell celection..thats a different matter. I did have myTable.setCellSelectionEnabled(true); but no, the cell behaviour is really, eally weird, quite hard to explain, but here goes.
If i try to select cell D1 and D2 - D1 is selected, D2, E2,F2 and so on become selected. If i try to add D3 to the mix, the entire row 3 is selected, and as soon as i let go of the mouse button, the entire table except row 1 gets selected. really really weird. Below is my tableModel and what i do to the table. Thanks for your help,
regards
Rupz
myTable.setModel(new myTableModel(this,40,40));
// Create a row-header to display row numbers.
// This row-header is made of labels whose Borders,
// Foregrounds, Backgrounds, and Fonts must be
// the one used for the table column headers.
// Also ensure that the row-header labels and the table
// rows have the same height.
numRows = myTable.getColumnCount();
numCols = myTable.getRowCount();
TableColumn aColumn = myTable.getColumnModel().getColumn(0);
TableCellRenderer aRenderer = myTable.getTableHeader().getDefaultRenderer();
Component aComponent = aRenderer.getTableCellRendererComponent(myTable, aColumn.getHeaderValue(), false, false, -1, 0);
Font aFont = aComponent.getFont();
Color aBackground = aComponent.getBackground();
Color aForeground = aComponent.getForeground();
Border border = (Border)UIManager.getDefaults().get("TableHeader.cellBorder");
FontMetrics metrics = getFontMetrics(cellFont);
* Creating a panel to be used as the row header.
* Since I'm not using any LayoutManager,
* a call to setPreferredSize().
JPanel pnl = new JPanel((LayoutManager)null);
Dimension dim = new Dimension( 40, rowHeight*numRows);
pnl.setPreferredSize(dim);
// Adding the row header labels
dim.height = rowHeight;
for (int ii=0; ii<numRows; ii++) {
JLabel lbl = new JLabel(Integer.toString(ii+1), SwingConstants.CENTER);
lbl.setFont(aFont);
lbl.setBackground(aBackground);
lbl.setForeground(aForeground);
lbl.setBorder(border);
lbl.setBounds(0, ii*dim.height, dim.width, dim.height);
pnl.add(lbl);
JViewport vp = new JViewport();
dim.height = rowHeight*numRows;
vp.setViewSize(dim);
vp.setView(pnl);
// Set resize policy and make sure
// the table's size is tailored
// as soon as it gets drawn.
myTable.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
Dimension dimScpViewport = myTable.getPreferredScrollableViewportSize();
if (numRows>30) dimScpViewport.height = 30*rowHeight;
else dimScpViewport.height = numRows*rowHeight;
if (numCols>15)
dimScpViewport.width = 15*myTable.getColumnModel().getTotalColumnWidth()/numCols;
else
dimScpViewport.width = myTable.getColumnModel().getTotalColumnWidth();
myTable.setPreferredScrollableViewportSize(dimScpViewport);
myTable.repaint();
And the table model
public class myTableModel extends DefaultTableModel {
private MySpread mySpreadsheet;
public myTableModel (MySpread aSpreadsheet){
super();
mySpreadsheet = aSpreadsheet;
public myTableModel (MySpread aSpreadsheet, int rows,int cols){
super(rows,cols);
// for(int x = 0; x < rows; x++) {
// myCell temp = new myCell(new Integer(x+1));
// super.setValueAt(temp, x, 0);
for(int x =0 ; x < rows; x++)
for (int y = 0; y < cols; y++)
// we initialize it here
super.setValueAt(new myCell(rows,cols,("")),x,y);
mySpreadsheet = aSpreadsheet;
public boolean isCellEditable(int row, int column) {return true;}
-
Strange viewing behaviour on score page view on Logic 7.2.0 on MacBookPro
I recorded some sequences in Logic 7.2.0 on my MacBookPro and, seeing them in page view mode, I get a strange viewing behaviour: the staffs continue going straight on overshooting the "white delimited page zone". If I try to zoom out I can't obtain the "more pages view" option normally obtained.
If I reopen this song on the logic 7.2.0 situated in my G5 all is fine. Why?
Any idea?
Thanks
FulvioGuys, I think this problem has to do with the scale parameter of the instrument set being translated incorrectly on Intel/MPB (quite possibly affecting even the "ALL" instrument set, which has no adjustable parameters). Now, I don't have an Intel Mac or MBP, but based on my recent experiences in PPC and similar problems, plus what I've read here, I think I might be on to something...
I'm going to suggest that you guys who are having problems with staves going off the page to do the following test:
1) Open one of your problematic songs and view the score editor where the off-the-page staves are displayed
2) If you're using the "ALL" instrument set, read on. If not, go to #3 below.
ALL Instrument Set: if you're using this just to see a preliminary version of your score, close the score window, select ALL, and open the score editor. This forces the creation of a new instrument set. Do these staves go off the page? If not, you're good to go. But if they do go off the page...
a) go to your printer settings and make sure that you have valid settings there. This includes the printer type, page size, and scaling. If they're set to default values (like "most recent printer"), be sure to select an actual printer on your system.
b) open the Instrument Set parameters for the set that was created just before. Set the scale parameter to 200%, then make it 50%, then make it 100%. If my theory is correct, your music should now stay on the page.
3) If you're using a custom instrument set repeat steps a) and b) above. See if that clears up the problem.
I'd be curious to know if any of the above fixes the problem for you. Again, it's just a theory, but maybe it has legs...
Best,
-=iS=- -
STRANGE GRAPHICS BEHAVIOUR !!!!
I've posted this in another forum but didn't get any good help...
So I hope U guys could help me!
I made a bit of complex GUI wih a lot of different layoutmanagers and components.
The problem is that when I open a frame/dialog/optionpane above the GUI it leaves "footprints" on the GUI. The "footprints" is vertical stripes from where the frame/dialog/optionpane where.
When a minimize my GUI and maximize it again the stripes are gone. It seems like the GUI needs to be updated/repainted or something more often (???)
I'm thinking about writing a class using a thread to update/repaint the GUI each 10 milliseconds or something. What do you guys think?
If you post me you're email-address I could send you a pic of the strange GUI behaviour.
Thanks in advance!!!
/AndrewHi,
try this
everytime ur application regains focus call
the updateUI() method.
for this ur application has implement FocusListener interface and write this code in the focusGained method
this should work
hope this helps
Regards,
Partha -
Strange repaint behaviour with JList & Keyboard actions
Hi everyone,
This is my first post to the forum. You guys have been a great help in the past and I hope to contribute more in the future.
Anyways, I've encountered some strange repainting behaviour with a JDialog that uses a JList and a JButton. The dialog is fairly straight-forward and basically this is how it works (like an open file dialog - yes I'm implementing my own filechooser of sorts):
* JList lists a number of simple items that the user can select from.
* Once a selection is made, an Open button (JButton) is enabled.
* <ENTER> key is registered (using registerKeyboardAction()) with a JPanel which is used as the main content pane in the dialog.
* The user can either click on the Open Button or hit the <ENTER> key which then closes the dialog and runs whatever logic that needs to.
Now, the repaint problem comes in when:
1. User selects an item.
2. User hits the <ENTER> button
3. Dialog closes
4. User brings the dialog back up. This entails reloading the list by removing all elements from the list and adding new ones back in.
5. Now... if the user uses the mouse to select an item lower in the list than what was done in step #1, the selection is made, but the JList doesn't repaint to show that the new selection was made.
I didn't include a code sample because the dialog setup is totally straight-forward and I'm not doing anything trick (I've been doing this kind of thing for years now).
If I remove the key registration for the <ENTER> key from the dialog, this problem NEVER happens. Has anyone seen anything like this? It's a minor problem since my workaround is to use a ListSelectionListener which manually calls repaint() on the JList inside the valueChanged() method.
Just curious,
HuyOh, my bad. I'm actually using a JToggleButton and not a JButton, so the getRootPane().setDefaultButton() doesn't apply because it only takes JButton as an input param. I wonder why it wasn't implemented to take AbstractButton. hmmm.
-
Strange layout behaviour with TilePane
here is the demo
1.rootLayout have 2 child,controlbox and contentLayout
2.3 button on controlbox
3.contentLayout will add content,when press deffrent button on controlbox
4.watch button "Add TilePane" , strange layout behaviour , what is the matter?
layout picture
|--------------------------------|
| | |
| | |
| | |
| | |
|controlbox | contentLayout |
| (VBox) | (StackPane) |
| | |
| | |
| | |
| | |
|--------------------------------|
the code
import javafx.application.Application;
import javafx.event.EventHandler;
import javafx.geometry.Pos;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.control.ListView;
import javafx.scene.input.MouseEvent;
import javafx.scene.layout.StackPane;
import javafx.scene.layout.TilePane;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;
public class testTilePaneLayout extends Application {
StackPane contentLayout = new StackPane();
//add content with 2 Button
public void addContent(){
VBox vbox = new VBox();
contentLayout.getChildren().clear();
contentLayout.getChildren().add(vbox);
StackPane.setAlignment(vbox,Pos.CENTER);
Button btn = new Button("Button1");
Button btn2= new Button("Button2");
vbox.getChildren().add(btn);
vbox.getChildren().add(btn2);
//add content with 2 Button & 1 ListView
public void addListViewContent(){
VBox vbox = new VBox();
contentLayout.getChildren().clear();
contentLayout.getChildren().add(vbox);
StackPane.setAlignment(vbox,Pos.CENTER);
Button btn = new Button("Button1");
Button btn2= new Button("Button2");
vbox.getChildren().add(btn);
vbox.getChildren().add(btn2);
@SuppressWarnings("rawtypes")
ListView listView = new ListView();
vbox.getChildren().add(listView);
//add content with 2 Button & 1 TilePane
public void addTilePaneContent(){
VBox vbox = new VBox();
contentLayout.getChildren().clear();
contentLayout.getChildren().add(vbox);
StackPane.setAlignment(vbox,Pos.CENTER);
Button btn = new Button("Button1");
Button btn2= new Button("Button2");
vbox.getChildren().add(btn);
vbox.getChildren().add(btn2);
TilePane tilePane = new TilePane();
tilePane.setMaxSize(100,100);
Label lbl = new Label("Label on TilePane");
tilePane.getChildren().add(lbl);
vbox.getChildren().add(tilePane);
public void start(Stage stage) {
stage.setResizable(false);
stage.centerOnScreen();
Group root = new Group();
Scene scene = new Scene(root,800,600);
stage.setScene(scene);
//root Layout = StackPane
StackPane rootLayout = new StackPane();
root.getChildren().add(rootLayout);
rootLayout.setMinSize(800,600);
rootLayout.setMaxSize(800,600);
//content StackPane
rootLayout.getChildren().add(contentLayout);
contentLayout.setMinSize(100, 100);
contentLayout.setMaxSize(200, 200);
StackPane.setAlignment(contentLayout,Pos.CENTER);
//control VBox
VBox controlBox = new VBox();
rootLayout.getChildren().add(controlBox);
controlBox.setMaxSize(100, 200);
StackPane.setAlignment(controlBox,Pos.CENTER_LEFT);
//3 control button
Button btn1 = new Button("Add button");
Button btn2= new Button("Add Listview");
Button btn3= new Button("Add TilePane");
controlBox.getChildren().add(btn1);
controlBox.getChildren().add(btn2);
controlBox.getChildren().add(btn3);
btn1.setOnMousePressed(new EventHandler<MouseEvent>() {
@Override
public void handle(MouseEvent arg0) {
addContent();
btn2.setOnMousePressed(new EventHandler<MouseEvent>() {
@Override
public void handle(MouseEvent arg0) {
addListViewContent();
btn3.setOnMousePressed(new EventHandler<MouseEvent>() {
@Override
public void handle(MouseEvent arg0) {
addTilePaneContent();
stage.show();
public static void main(String[] args) {
Application.launch(args);
}Edited by: noregister on Oct 4, 2011 11:30 AM
Edited by: noregister on Oct 4, 2011 11:31 AMOh, my bad. I'm actually using a JToggleButton and not a JButton, so the getRootPane().setDefaultButton() doesn't apply because it only takes JButton as an input param. I wonder why it wasn't implemented to take AbstractButton. hmmm.
-
Strange POF behaviour in 3.6.1.3
Hi All,
We have been seeing some strange POF behaviour in 3.6.1.3 paricularly around classes with boolean fields.
Here is my test case:
package org.gridman.pof;
import com.rbs.odc.dashboard.server.cluster.model.Case;
import com.tangosol.io.pof.ConfigurablePofContext;
import com.tangosol.io.pof.PofReader;
import com.tangosol.io.pof.PofWriter;
import com.tangosol.io.pof.PortableObject;
import com.tangosol.io.pof.reflect.PofValue;
import com.tangosol.io.pof.reflect.PofValueParser;
import com.tangosol.io.pof.reflect.SimplePofPath;
import com.tangosol.util.Binary;
import com.tangosol.util.ExternalizableHelper;
import java.io.IOException;
public class JK implements PortableObject {
private String stringField;
private boolean booleanFieldOne;
private boolean booleanFieldTwo;
public JK() {
public JK(boolean booleanFieldOne, boolean booleanFieldTwo, String stringField) {
this.booleanFieldOne = booleanFieldOne;
this.booleanFieldTwo = booleanFieldTwo;
this.stringField = stringField;
@Override
public void readExternal(PofReader pofReader) throws IOException {
stringField = pofReader.readString(0);
booleanFieldOne = pofReader.readBoolean(1);
booleanFieldTwo = pofReader.readBoolean(2);
@Override
public void writeExternal(PofWriter pofWriter) throws IOException {
pofWriter.writeString(0, stringField);
pofWriter.writeBoolean(1, booleanFieldOne);
pofWriter.writeBoolean(2, booleanFieldTwo);
public static void main(String[] args) {
ConfigurablePofContext pofContext = new ConfigurablePofContext("jk-pof-config.xml");
JK value = new JK(false, true, "JK");
Binary binary = ExternalizableHelper.toBinary(value, pofContext);
PofValue pofValue = PofValueParser.parse(binary, pofContext);
PofValue childOne = new SimplePofPath(0).navigate(pofValue);
PofValue childTwo = new SimplePofPath(1).navigate(pofValue);
PofValue childThree = new SimplePofPath(2).navigate(pofValue);
System.out.println(childOne.getValue());
try {
System.out.println(childTwo.getValue());
} catch (Exception e) {
System.out.println("Exception: " + e.getMessage());
try {
System.out.println(childThree.getValue());
} catch (Exception e) {
System.out.println("Exception: " + e.getMessage());
}and the jk-pof-config.xml file used above...
<pof-config>
<user-type-list>
<include>coherence-pof-config.xml</include>
<user-type>
<type-id>3001</type-id>
<class-name>org.gridman.pof.JK</class-name>
</user-type>
</user-type-list>
</pof-config>When you run the main method of the class above you would expect to get
JK
false
true... but what you get is...
JK
null
Exception: -34 is an invalid typeWhat is going on? The booleanFieldOne seems to have been serialized as type -34 which is PofConstants.V_BOOLEAN_TRUE which makes sense but the code to deserialize the field cannot handle type -34. The booleanFieldTwo comes back as null and is serialized as type -65 which is PofConstants.T_UNKNOWN
Where this causes us a problem is if we do a query with a filter like this...
new EqualsFilter(new PofExtractor(null, 1), true);...it will break whenever it tries to extract the POF value where booleanFieldOne is true.
I know we can fix this by always specifying the type, so this will work
new EqualsFilter(new PofExtractor(Boolean.class, 1), true);and this will work too wheras it fails without specifying the type...
childTwo.getValue(Boolean.class);So although there are work-arounds it seems very strange.
What is even stranger is that if you do not serialize the stringField so the readExternal and writeExtrnal methods look like this
@Override
public void readExternal(PofReader pofReader) throws IOException {
//stringField = pofReader.readString(0);
booleanFieldOne = pofReader.readBoolean(1);
booleanFieldTwo = pofReader.readBoolean(2);
@Override
public void writeExternal(PofWriter pofWriter) throws IOException {
//pofWriter.writeString(0, stringField);
pofWriter.writeBoolean(1, booleanFieldOne);
pofWriter.writeBoolean(2, booleanFieldTwo);
}The you get this output...
null
false
Exception: -34 is an invalid typeiNow the stringField is null (as we have not serialized it) but the booleanFieldOne is now being desrialized correctly as a boolean false. We have noticed that if you have a boolean as the first field you serialize in the writeExternal method then it is serialized as POF type -11 which is PofConstants.T_BOOLEAN and will be deserialized as the correct true or false value.
Cheers,
JKHi René,
Just changing the field types to Boolean like this...
private Boolean booleanFieldOne;
private Boolean booleanFieldTwo;made no difference. But then changing the writeExternal method to use writeObject instead of writeBoolean did fix it and the types of both fields are -11 or PofConstants.T_BOOLEAN
@Override
public void writeExternal(PofWriter pofWriter) throws IOException {
pofWriter.writeString(0, stringField);
pofWriter.writeObject(1, booleanFieldOne);
pofWriter.writeObject(2, booleanFieldTwo);
}So using writeObject instead of writeBoolean would be another fix, but obviously most people would pick writeBoolean to store a boolean value.
JK -
Strange JFRAME behaviour under Jdk 1.5
I have the following extracted code :
import java.util.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.*;
import java.awt.geom.*;
public class DrawPie extends JFrame{
private HashMap ColourMap=new HashMap();;
private HashMap DataMap=new HashMap();
private double Total_Val=0;
private int startAngle=0;
private int arcAngle=0;
public DrawPie(HashMap DataMap){
super ("Pie Chart Analysis");
this.DataMap=DataMap;
// System.out.println("DATAMap-->"+DataMap);
// getContentPane().setBackground(Color.white);
setSize(500,500);
setVisible(true);
public void paint(Graphics g){
super.paint (g);
Graphics2D g2 = (Graphics2D) g;
DrawPieChart(g);
This programme work fine under jdk1.4.2 or below at the time when the Jframe or windows is resized or icon minimised or maximised.
But when it was compiled using latest jdk1.5 , unexpected strange result happen , the pie chart draw using java 2d
g2.fill(new Arc2D.Double(30, 30, 200,200,startAngle,arcAngle
, Arc2D.PIE));
wil behaved strangely, the moment the JFrame or windows is resize or dragged.
The pie chart will disappear if the windows is resized , However if the window is minimised and restore back to normal size , pie chart will reappear and subsequently lost completely if the windows is dragged resulted in the size changes.
I was puzzled by this strange swing behaviour , any resized or windows minimise or maximise would not result in the lost of pie chart as long as the jdk is not 1.5 ! Was it due to swing fundamental changes incorporated in the latest release?
Any suggestion?
Thankok I see what you have done,
now a few tips in drawing something on your frame:
never override the paint method of your main Frame (like you did)
to draw something on it you simply override the contentPane's paint method
and to make your own contentPane you simply make one by making a new Class
that extends say JPanel and assign it as a contentPane of your Frame(like I did)
And in this Paint method you can draw whatever you like it will be properly uptated!!!
All the best keep up the good work!
ps. try the code bellow.
import javax.swing.*;
public class DrawPie1 extends JFrame {
private double Total_Val=0;
private int startAngle=0;
private int arcAngle=0;
private MyMainPanel mainPan;
public DrawPie1()
super ("Pie Chart Analysis");
mainPan = new MyMainPanel();
setContentPane(mainPan);
//public void paint(Graphics g) //Do not override the paint method of your main frame!!
// super.paint (g);
// Graphics2D g2 = (Graphics2D) g;
// g2.setPaint(Color.red);
// g2.fill(new Arc2D.Double(30, 30, 200,200,0,78
// , Arc2D.PIE));
public static void main(String args[])
DrawPie1 pie=new DrawPie1();
pie.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
pie.setSize(400,300);
pie.setVisible(true);
//**** Second Class
import javax.swing.*;
import java.awt.*;
import java.awt.geom.Arc2D;
public class MyMainPanel extends JPanel
public MyMainPanel()
public void paint(Graphics g)
super.paint (g);
Graphics2D g2 = (Graphics2D) g;
g2.setPaint(Color.red);
g2.fill(new Arc2D.Double(30, 30, 200,200,0,78
, Arc2D.PIE));
} -
Sourcing 7.0 - Strange Login Behaviour for enterprise user
Hello
We have installed SAP Sourcing 7.0 and created one tenant and after that everything was running fine. I have now created another tenant. After this there is a strange login behaviour for enterprise user
When I go to the ...../fsbuyer/portal URL, it given me a login screen. When I try to login with enterprise user and password as specified in the context, it does not let me login even with a correct password. The error is "User Authentication Failed"
I just happened to try NW CE Administrator Login, after this the error changed to "Entry does not exist". Here I gave enterprise user and password and it logged into the system. So I now have to login two times once with NW UME User and other with enterprise user to access the setup page.
However this is the problem only for enteprise user and not for other user accounts that I created. I checked in NW UME, the enterprise user does not exist there. However I can see that other users that I created using "Internal User Accounts" are also created in NW UME.
Anyone faced this behaviour earlier?
This also brings out a very interesting point. In Multi-Tenant Setup when using NW UME does this mean that two tenants cannot share the same user account. Is that so?
Regards,
ShubhamHi Vikram,
Thanks a ton for your reponse.
I would like to understand your solution regarding creating another cluster.
Does this mean I need to install another CE Instance and install sourcing on the same.
OR
I have to create an Add-In instance for the current CE Server and define the Host Name of Add-In Instance in the new cluster
Also in this cluster, which context should I select, System Context or Existing Tenant Context or New Tenant Context.
Regards,
Shubham -
Component dropped on the 'Drag components or assets here' band, unable to edit
Hi,
I have got a weird problem and wish someone had come across this during their development:
I have a component which works perfectly normal up until now, there are some author content changes but apart from that there's no code changes.
This component allows drag and drop, but instead of landing on a blank space, now it lands exactly on top of the 'Drag components and assets here' band, which makes it impossible to edit when double clicked. Because it is overlapping with the 'Drag components and assets here' band, everytime it is double clicked a dialogue is popped up, says 'insert new component'. If you right click then you get only one menu option 'new', just like when you right click on the 'Drag components and assets here' band.
I know I can add 'cq:actions' properties to cq_editConfig to allow edit and delete, but it looks really bad because the author still sees a component overlapping with the 'Drag components and assets here' band.
I'd appreciate if you can shed some light on this!I would recommend inserting some text into the component's jsp that is only visible while in edit mode (such as below)
if(WCMMode.fromRequest(request) == WCMMode.EDIT && YOURBLAHSTUFF !=null){
Please add content for this component here
that way you can see SOMETHING in that component's rendered area - even if 'YOURBLAHSTUFF" is empty -
Strange translation behaviour...
Hi all,
i tried to translate my application bit i´m getting some strange errors. Here´s what i did:
1. language mapping. source app: 101, target app: 201 - worked
2. seeded translation text -worked
3. translated a few items, just for testing...
4. uploaded xliff - worked
5. apllied xliff to app no. 201 - worked
so i now expected to see an apllication called 201 in the application builder. but somehow it´s not there. nothing has changed.
but if i go to URL f?p=201:1: i get an error:
ORA-0000: normal, successful completion
Error Unable to fetch authentication_scheme in application 201.
OK below this there is my developer toolbar and i can click on "Application 201" wich leads me to the application builder where i see my translated application.... strange!
i navigated to shared components > authentication > schemes, no scheme was marked as current. i tried to make one of them current but it fails without error message.
any ideas?
greetings,
SebastianHello Sebastian,
>> below this there is my developer toolbar and i can click on "Application 201" wich leads me to the application builder where i see my translated application.... strange
Your application 201 doesn’t exist as a standalone application, and as a translated application you should never reference it directly. The f?p notation should always reference application ID 101, and the APEX engine will reference the translated application according to the setting of the ‘Application Language Derived From’ field. The same goes to the Application Builder. As Keith mentioned, you should only edit application 101, and if you want to changes to affect the translated application, you should re-export the XLIFF file, re-import it (after the necessary changes, if any) and re-publish it.
The actual bug in this case is actually the default behavior of displaying the developer toolbar on the error page. In your specific case, it shouldn’t have happened, and you shouldn’t get access to application 201. However, as I mentioned this is the default behavior.
>> ok, i understand, thanks. but i keep getting the error i mentioned above..
Are you getting the error message while trying to access application 101? I believe not. You’ll keep getting the error if you try to directly access application 201. That is a deserved error.
@Keith
>> As I understand it, your application id is now 101.201
The translated application is still marked as 201, as you can see when you export the application (the only legit operation you can do directly on a translated application). The translated application pages are internally marked as 1.201, 2.201, x.201, etc., but this should not have any bearing on your actions, as you shouldn’t use this notation in any way.
Regards,
Arie.
♦ Please remember to mark appropriate posts as correct/helpful. For the long run, it will benefit us all.
♦ Forthcoming book about APEX: Oracle Application Express 3.2 – The Essentials and More -
Hi All,
I'm having problems with a portal since I added an applet to one of the portlets using an HTML <OBJECT> tag. The applet requires a java console to load up and once this is complete, for some reason the default portlet of the portal is refreshed (More precisely the begin action is fired).
I'm assuming that this is related to the java console because repeating the action above once the console has loaded does not cause the default portlet to be refreshed again a second time.
Has anyone experienced similar behaviour?
If it helps, the code in the jsp is:
<netui-data:repeater dataSource="{pageFlow.pieChart}">
<netui-data:repeaterHeader>
<OBJECT classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93"
height="200" width="650" hspace="10"
standby="Loading Requested Chart........">
<PARAM name="code" value="X_PieChart.class">
<PARAM name="codebase" value="/mpsportal/javaScript/">
<PARAM name="image" value="">
<PARAM name="forecolor" value="555566">
<PARAM name="activecolor" value="cc0000">
<PARAM name="backcolor" value="ffffbe">
<PARAM name="activecolor_shadow" value="ff0000">
<PARAM name="distance" value="8">
</netui-data:repeaterHeader>
<netui-data:repeaterItem>
<PARAM NAME='p<netui:content value="{container.index}"/>' value='<netui:content value="{container.item.name}"/>#<netui:content value="{container.item.value}"/>#0000AA#0000FF#<netui:content value="{container.item.name}"/> - <netui:content value="{container.item.value}"/>##'>
</netui-data:repeaterItem>
<netui-data:repeaterFooter>
<PARAM name="showratios" value="1">
<PARAM name="deep" value="8">
<PARAM name="font" value="verdana#plain#12">
<PARAM name="title" value="">
<PARAM name="titlealign" value="2">
</OBJECT>
</netui-data:repeaterFooter>
</netui-data:repeater>Hi all,
I am closing this thread as i came to know that i cannot open two threads parallely, about an issue in different forums .
If u have more suggetions reg this issue, please post them in the following thread :
Strange Portal Behaviour in Internet Explorer 8
Regards,
Anupama -
Strange Classpath behaviour in AppServ 8.1
A tricky thing but give me some headache.
Recently, I'm trying to use Sun Application Server 8 2005Q1, and i got this strange classpath behaviour.
here is the problem.
My application is using some third party jar file. So I have to set up my classpath to this jar files, which is in my instance JVM Setting>Path settings. However, when i am going to deploy it, It returns me with an exception which mean, It can't find those 3rd party jars.
the strange thing is, if i put the path into server-config, JVM Setting>Path settings. It will deploy happily ever after.
so any idea why i got this behaviour? and is there any way to do it without disturbing my server-config?
thanks for your time....
cheers,I have the same problem - no solution. Is there an alternative to print contact sheets in custom order?
Maybe you are looking for
-
I get all through the downloading process and move it to my applications. It then ask me if I want to replace the old version with the new one. When I click on replace, a new window comes up with the fact that my computer does have privileges for som
-
Assign Investment program Position for IW31 through exit/BADI
Hi My requirement is, I've to assign investment program details to Maintainence order (IW31) in creation mode through enhancement. I am able to do so in change mode using the FM "AIPP_ALLOCATE_POSITION_DARK", but when I use the same FM in creation mo
-
Why doesn't Acrobat XI, pdf created in Corel Vetnura 10, print to my Epson Gluntz & Jensen ictp Platemaker?
-
Using NetBeans and Eclipse to drag and drop forms, controls etc
Hi, can you use NetBeans and Eclipse to drag and drop like say with C# in MS Visual Studio ? like forms and listboxes, textboxes etc ??
-
Can I turn iTunes Match Upload OFF?
All of my unpurchased music is ripped ALAC, so if iTunes can't find it in MATCH, it uploads all of these HUGE files. I've got over 9000 tunes that it's doing this to. I really DON'T want to stream ALAC files to my phone or anything else. Is there