UIPickerView and didSelectRow with multiple components problem
If I spin two components at the same time in my picker I only get one call to didSelectRow....
More specifically, if I spin one component and move another component no call is recieved until the first component stops spinning, and so the second component move is missed.
I use this to update displayed data so it looks badly wrong. Is this yet another bug with the SDK?
Hi,
I have the same problem. Actually it is not so annoying in my application as it is only cosmetic. However my application was rejected by Apple because of this issue.
I checked what would happen in the built-in alarm app if the hour and minute picker wheels are rolled at the same time... and both value are recorded. So there must be a programmatic solution to this problem and it is definitely not a bug of the SDK.
It would be great if someone knows how to solve this.
Similar Messages
-
Dynamic SORT with multiple components
Hi all,
I want to sort an internal table in this way:
SORT itab BY (component).
This is not difficult if "component" contains the name of ONE column of itab. But - and here is my problem - how can I sort with multiple components?
Like this:
SORT itab BY (comp_1) (comp_2) ... (comp_N).
The number of components (N) shall be flexible. It is not possible to concatenate the components into one string-variable. This causes an error ITAB_ILLEGAL_COMPONENT.
Brillant would be a solution which also contains the sort-direction (ASCENDING or DESCENDING for each component like this:
SORT itab BY (comp_1) (dir_1)
(comp_2) (dir_2)
(comp_N) (dir_N).
Is there a way to do so?
Thanks for all hints!
MathiasHi Matahias ...
From ABAP help...
SORT itab.
Extras:
1. ... BY f1 f2 ... fn
2. ... ASCENDING
3. ... DESCENDING
4. ... AS TEXT
5. ... STABLE
The syntax check performed in an ABAP Objects context is stricter than in other ABAP areas. See Field symbols not allowed as sort criterion.
Effect
The entries in the internal table are sorted in ascending order using the key from the table definition (DATA, TYPES).
Addition 1
... BY f1 f2 ... fn
Effect
Uses the sort key defined by the sub-fields f1, f2, ..., fn of the table itab instead of the table key. The fields can be of any type; even number fields and tables are allowed.
You can also specify the sort fields dynamically in the form (name). If name is blank at run time, the sort field is ignored. If itab is a table with a header line, you can also use a field symbol pointing to the header line of itab as a dynamic sort criterion. A field symbol that is not assigned is ignored. If a field symbol is assigned, but does not point to the header line of the internal table, a runtime error occurs.
If the line type of the internal table contains object reference variables as components, or the entire line type is a reference variable, you can use the attributes of the object to which a reference is pointing in a line as sort criteria (see Attributes of Objects as the Key of an Internal Table
You can address the entire line of an internal table as the key using the pseudocomponent TABLE_LINE. This is particularly relevant for tables with a non-structured line type when you want to address the whole line as the key of the table (see also Pseudocomponent TABLE_LINE With Internal Tables).
If you use one of the additions 2 to 5 before BY, it applies to all fields of the sort key by default. You can also specify these additions after each individual sort field f1, f2, ..., fn. For each key field, this defines an individual sort rule which overrides the default.
Cheers
Preetham -
My iPad does not find the printer. I have tried the HP app and it works, but in any other app the printer is not seen. How do I get this printer visible to the iPad. All my other network computers find and print with out a problem.
hi
could you tell us what the other app is please -
I bought the production premium , cs6 , and I download it and registered with out any problem , I formatted my computer then I downloaded the collection , now everything else working only after effect is not working , what shall i do
did ae install without problem? check the install logs to be sure (Troubleshoot with install logs | CS5, CS5.5, CS6, CC)
if it did, what do you see when clicking the executable? -
Ufsdump and ufsrestore with multiple volumes
How to ufsdump and ufsrestore with multiple volumes?
I want to backup and restore a large directory with ufsdump and
ufsrestore, so it requires multiple tapes (two in this example).
After backuping tape 1, I press the eject button of the tape drive to
eject the button, then I insert a second tape and type "yes" to
continue.
# /usr/sbin/ufsdump 0uf /dev/rmt/0cn /opt/bsm
DUMP: 89.66% done, finished in 0:04
DUMP: End-of-tape detected
DUMP: 92.68% done, finished in 0:03
DUMP: Change Volumes: Mount volume `#2' on `pwdly0ee:/dev/rmt/0cn'
DUMP: NEEDS ATTENTION: Is the new volume (#2) mounted on
`pwdly0ee:/dev/rmt/0cn' and ready to go?: ("yes" or "no")
DUMP: NEEDS ATTENTION: Is the new volume (#2) mounted on
`pwdly0ee:/dev/rmt/0cn' and ready to go?: ("yes" or "no")
DUMP: NEEDS ATTENTION: Is the new volume (#2) mounted on
`pwdly0ee:/dev/rmt/0cn' and ready to go?: ("yes" or "no") ye
DUMP: NEEDS ATTENTION: Is the new volume (#2) mounted on
`pwdly0ee:/dev/rmt/0cn' and ready to go?: ("yes" or "no") yes
DUMP: "yes" or "no"?
DUMP: NEEDS ATTENTION: Is the new volume (#2) mounted on
`pwdly0ee:/dev/rmt/0cn' and ready to go?: ("yes" or "no") yes
DUMP: Volume 2 begins with blocks from inode 430787
DUMP: 92.70% done, finished in 0:03
DUMP: Change Volumes: Mount volume `#2' on `pwdly0ee:/dev/rmt/0cn'
DUMP: NEEDS ATTENTION: Is the new volume (#2) mounted on
`pwdly0ee:/dev/rmt/0cn' and ready to go?: ("yes" or "no") yes
DUMP: Volume 2 begins with blocks from inode 430787
DUMP: 92.70% done, finished in 0:03
DUMP: 4731838 blocks (2310.47MB) on 2 volumes at 840 KB/sec
DUMP: DUMP IS DONE
DUMP: Level 0 dump on Sat 08 Nov 2003 02:53:58 PM EST
# /usr/sbin/ufsrestore rf /dev/rmt/0cn
Mount volume 2
then enter volume name (default: /dev/rmt/0cn)
Mount volume 3
then enter volume name (default: /dev/rmt/0cn) <- insert second tape
Wrong volume (2)
Mount volume 3
then enter volume name (default: /dev/rmt/0cn) 2
Cannot open 2
Mount volume 3
then enter volume name (default: 2)
Cannot open 2
Mount volume 3
After tape 1 in finished restoring, I eject the tape and insert the
second tape.
Now what should I do to continue tape restoring?I don't think that you're supposed to type in the number "2". What ufsrestore is looking for is the next ufsrestore volume, not the volume number. If it is a tape drive, which this apears to be, you specify the tape drive device: dev/rmt/0cn.
-
Data table header facet with multiple components?
Hi,
I have a data table to which I wish to add buttons to change the sort order of the items displayed. However when I add the 'buttons' to the 'header' facet I get strange results - some components are shown, some are not, and the order they appear seems almost random.
Is the header / footer facet designed only for one component - or can I combine them somehow?
Code snippet is
<h:dataTable id="table" rowClasses="oddRow,evenRow" width="80%"
value="#{ControllerBean.orderedResults}" var="meet">
<h:column>
<f:facet name="header">
<h:commandLink action="#{ControllerBean.setOrder}">
<h:graphicImage value="/img/up.gif" style="border: 0px" />
<f:param name="order" value="up-title" />
</h:commandLink>
<h:outputText value="#{msgs.title}" />
<h:commandLink action="#{ControllerBean.setOrder}">
<h:graphicImage value="/img/down.gif" style="border: 0px" />
<f:param name="order" value="down-title" />
</h:commandLink>
</f:facet>
<h:outputText id="meetTitle"
value="#{meet.title}" />
</h:column>
etc..
So to be clear - I want a header that contains two graphic buttons separated by the text. When I run this code as is here, I get just the 'down' button, but by changing the order I can sometimes get the down button and the text......
Cheers
ReelingYes, you can place it in a panelGrid or panelGroup component.
The following is an excerpt from a book:
TIP: To place multiple components in a table header or footer, you must
group them in an h:panelGroup tag, or place them in a container component
with h:panelGrid or h:dataTable. If you place multiple components in a facet, only the
first component will be displayed.
Thus you could have something like:
<f:facet name="header">
<h:panelGrid columns="1">
<h:outputText value="#{fields.recordings}" style="font-weight: bolder" />
<h:panelGroup>
<h:outputText value="#{fields.type}" style="font-weight: bolder"/>
<h:outputText value="#{fields.date}" style="font-weight: bolder"/>
<h:outputText value="#{fields.time}" style="font-weight: bolder"/>
</h:panelGroup>
</h:panelGrid>
</f:facet> -
Hi all,
I'm running some tests of an update from Siebel SIA 8.1.1.0 to 8.1.1.8 in preparation for a Production upgrade. Our entire estate is Windows based, currently running Windows Server 2008. The update is not working as I expected.
On one machine I have the Gateway and a Siebel Server (Object Manager). On another machine, I have a Siebel Server (eDocument).
- Upgrading the single server (eDocument) using the new OUI installer seems to work fine
- Upgrading the host with Gateway AND Siebel Server (Object Manager) seems to fail - where a DLL exists in both Gateway AND Server (i.e. sssaadmn.dll), only the Gateway DLL gets updated
The result is that the Siebel Server (Object Manager) on the same host as the Gateway fails to start, with 'cannot load xxx.dll' appearing throughout the server and component logs. The single server (eDocument) seems to start fine with all components showing as 'Running' and visible through srvrmgr.
Has anyone performed an update with the 8.1.1.8 OUI based installers and had a similar problem? Any idea how to resolve?
Thanks for your thoughts!
OliHi all,
Looks like OUI can't cope with files with the Windows 'read only' attribute set. It will simply skip them altogether, without error. :(
Anyway, unsetting the read only attribute across the SBA81 folder, prior to running the upgrade, seems to have resolved the problem for us.
Regards,
Oli -
Find and replace with multiple files and with a watch folder
I am trying to create a watch folder that uses red_menace script to:
1. Have a folder that receives multiple xml files that run the script one by one.
2. then move the files to an output folder.
I tried modifying the set TheFIle to choose file -- the original text file to:
with multiple selections allowed
But that doesn't seem to work. I know i'm missing a step. Any help is much appreciated!
Thanks!
The way i'd like to setup things is having an input folder on the desktop (or just have the application on the desktop and I can drag the files onto it), and let it do it's thing. Once it's done have it export the xml files into an output folder.
Here's what i got so far:
on open
set TheFIle to choose file -- the original text file
set TheFolder to ("Macintosh HD:Users:user1:Desktop:out") -- the folder for the output file
set TheName to (GetUniqueName for TheFIle from TheFolder) -- the name for the output file
set TheText to read TheFIle -- get the text to edit
set Originals to {"KPCALDATE", "KPCALEVENT", "KPCALDAY", "KPCALBODY", "obituaries name", "" & return & "</cstyle></pstyle>" & return & "<pstyle name=\"obituaries text\"><cstyle>", "<pstyle name=\"obituaries text\"><cstyle name=\"Graphics Bold leadin\" font=\"ADV AGBook-Medium 2\">", "<pstyle name=\"Recipe Ingredients\"><cstyle>", " .com", " .net", " .org", " .edu", "www .", "www. ", "Ho- nolulu", "<pstyle name=\"kicker 12\"><cstyle allcaps=\"1\">fashion news</cstyle><cstyle allcaps=\"1\">" & return & "</cstyle></pstyle>" & return & "", "<component name=\"Headline 1\" type=\"Headline\">" & return & "<header>" & return & "<field name=\"Component name\" type=\"string\" value=\"Headline 1\"/>" & return & "<field name=\"Component type\" type=\"popup\" value=\"Headline\"/>" & return & "</header>" & return & "<body>" & return & "<pstyle name=\"hed STANDARD 36\"><cstyle>", "<pstyle name=\"obituaries text\"><cstyle allcaps=\"1\">", "<pstyle name=\"obituaries text\"><cstyle name=\"Graphics Bold leadin\">", "<pstyle name=\"tagline\"><cstyle>-", "-", "
Per serving:", "<pstyle name=\"Titlebar - mini, red\"><cstyle allcaps=\"1\">NATION & World </cstyle><cstyle allcaps=\"1\">Report</cstyle><cstyle allcaps=\"1\">" & return & "</cstyle></pstyle>" & return & "", "</cstyle></pstyle>"} -- the terms that can be replaced
set Replacements to {"subhed", "subhed", "subhed", "Normal", "obituaries text", ", ", "<pstyle name=\"obituaries text\"><cstyle name=\"Graphics Bold leadin\" font=\"ADV AGBook-Medium 2\">", "<pstyle name=\"Recipe Ingredients\"><cstyle>
", ".com", ".net", ".org", ".edu", "www.", "www.", "Honolulu", "", "<component name=\"Headline1\" type=\"Headline\">" & return & "<header>" & return & "<field name=\"Component name\" type=\"string\" value=\"Headline1\"/>" & return & "<field name=\"Component type\" type=\"popup\" value=\"Headline\"/>" & return & "</header>" & return & "<body>" & return & "<pstyle name=\"hed STANDARD 27\"><cstyle>", "<pstyle name=\"obituaries text\"><cstyle allcaps=\"1\">", "<pstyle name=\"obituaries text\"><cstyle name=\"Graphics Bold leadin\">", "<pstyle name=\"tagline\"><cstyle>", " ", "
Per serving:", "","" & return & "</cstyle></pstyle>"} -- the replacement terms
repeat with AnItem from 1 to count Originals
set TheText to (replaceText of TheText from (item AnItem of Originals) to (item AnItem of Replacements))
end repeat
try -- write a new output file
tell application "Finder" to make new file at TheFolder with properties {name:TheName}
set OpenFile to open for access (result as alias) with write permission
write TheText to OpenFile starting at eof
close access OpenFile
on error errmess
try
log errmess
close access OpenFile
end try
end try
end open
to GetUniqueName for SomeFile from SomeFolder
check if SomeFile exists in SomeFolder, creating a new unique name if needed
parameters - SomeFile [mixed]: a source file path
SomeFolder [mixed]: a folder to check
returns [text]: a unique file name and extension
set {Counter, Divider} to {"00", "_"}
-- get the name and extension
set {name:TheName, name extension:TheExtension} to info for file (SomeFile as text)
if TheExtension is missing value then set TheExtension to ""
set TheName to text 1 thru -((count TheExtension) + 2) of TheName
set NewName to TheName & "." & TheExtension
tell application "System Events" to tell (get name of files of folder (SomeFolder as text))
repeat while it contains NewName
set Counter to text 2 thru -1 of ((100 + Counter + 1) as text) -- leading zero
set NewName to TheName & Divider & Counter & "." & TheExtension
end repeat
end tell
return NewName
end GetUniqueName
to EditItems of SomeItems given Title:TheTitle, Prompt:ThePrompt
displays a dialog for multiple item edit (note that a return is used between each edit item)
for each of the items in SomeItems, a line containing it's text is placed in the edit box
the number of items returned are padded or truncated to match the number of items in SomeItems
parameters - SomeItems [list]: a list of text items to edit
TheTitle [boolean/text]: use a default or the given dialog title
ThePrompt [boolean/text]: use a default or the given prompt text
returns [list]: a list of the edited items, or {} if error
set {TheItems, TheInput, TheCount} to {{}, {}, (count SomeItems)}
if TheCount is less than 1 then return {} -- error
if ThePrompt is in {true, false} then -- "with" or "without" Prompt
if ThePrompt then
set ThePrompt to "Edit the following items:" & return -- default
else
set ThePrompt to ""
end if
else -- fix up the given prompt a little
set ThePrompt to ThePrompt & return
end if
if TheTitle is in {true, false} then if TheTitle then -- "with" or "without" Title
set TheTitle to "Multiple Edit Dialog" -- default
else
set TheTitle to ""
end if
set {TempTID, AppleScript's text item delimiters} to {AppleScript's text item delimiters, return}
set {SomeItems, AppleScript's text item delimiters} to {SomeItems as text, TempTID}
set TheInput to paragraphs of text returned of (display dialog ThePrompt with title TheTitle default answer SomeItems)
repeat with AnItem from 1 to TheCount -- pad/truncate entered items
try
set the end of TheItems to (item AnItem of TheInput)
on error
set the end of TheItems to ""
end try
end repeat
return TheItems
end EditItems
to replaceText of SomeText from OldItem to NewItem
replace all occurances of OldItem with NewItem
parameters - SomeText [text]: the text containing the item(s) to change
OldItem [text]: the item to be replaced
NewItem [text]: the item to replace with
returns [text]: the text with the item(s) replaced
set SomeText to SomeText as Unicode text -- TID's are case insensitive with Unicode text
set {TempTID, AppleScript's text item delimiters} to {AppleScript's text item delimiters, OldItem}
set {ItemList, AppleScript's text item delimiters} to {text items of SomeText, NewItem}
set {SomeText, AppleScript's text item delimiters} to {ItemList as text, TempTID}
return SomeText
end replaceText
Message was edited by: gamebreakersWhen you use the open or adding folder items to handlers, you need to add the parameters for the file items passed to them.
I'll go ahead and post the applet/droplet version of my original script from the previous topic for reference:
<pre style="
font-family: Monaco, 'Courier New', Courier, monospace;
font-size: 10px;
margin: 0px;
padding: 5px;
border: 1px solid #000000;
width: 720px; height: 340px;
color: #000000;
background-color: #FFEE80;
overflow: auto;"
title="this text can be pasted into the Script Editor">
-- search and replace multiple items applet/droplet/folder action
-- the terms to replace - edit as needed
property EditableItems : {¬
"one", ¬
"two", ¬
"three", ¬
"four", ¬
"five", ¬
"six", ¬
"seven", ¬
"eight", ¬
"nine", ¬
"ten", ¬
"eleven", ¬
"twelve", ¬
"thirteen", ¬
"fourteen", ¬
"fifteen", ¬
"sixteen", ¬
"seventeen", ¬
"eighteen", ¬
"nineteen", ¬
"twenty"}
-- the folder for the output file(s) - change as needed
property TheFolder : (path to desktop)
property LastEditItems : EditableItems
on run
the applet/droplet was double-clicked
open (choose file with multiple selections allowed)
end run
on open TheItems
items were dropped onto the applet/droplet
parameters - TheItems [list]: a list of the items (aliases) dropped
returns nothing
repeat with AnItem in TheItems
ReplaceMultipleItems from AnItem
end repeat
end open
on adding folder items to this_folder after receiving these_items
folder action - items were added to a folder
parameters - this_folder [alias]: the folder added to
these_items [list]: a list if items (aliases) added
returns nothing
repeat with AnItem in these_items
ReplaceMultipleItems from AnItem
end repeat
end adding folder items to
to ReplaceMultipleItems from SomeFile
replace multiple text items in SomeFile
parameters - SomeFile [alias]: the file to replace items in
returns nothing
set TheName to (GetUniqueName for SomeFile from TheFolder) -- the name for the output file
set TheText to read SomeFile -- get the text to edit
set Originals to (choose from list EditableItems default items LastEditItems with prompt "Select the terms to replace:" with multiple selections allowed) -- the specific terms to replace
set LastEditItems to Originals
set Replacements to (EditItems of Originals with Title given Prompt:"Edit the following replacement terms:") -- the replacement terms
repeat with AnItem from 1 to count Originals
set TheText to (ReplaceText of TheText from (item AnItem of Originals) to (item AnItem of Replacements))
end repeat
try -- write a new output file
tell application "Finder" to make new file at TheFolder with properties {name:TheName}
set OpenFile to open for access (result as alias) with write permission
write TheText to OpenFile starting at eof
close access OpenFile
on error errmess
try
log errmess
close access OpenFile
end try
end try
end ReplaceMultipleItems
to GetUniqueName for SomeFile from SomeFolder
check if SomeFile exists in SomeFolder, creating a new unique name if needed
parameters - SomeFile [mixed]: a source file path
SomeFolder [mixed]: a folder to check
returns [text]: a unique file name and extension
set {Counter, Divider} to {"00", "_"}
-- get the name and extension
set {name:TheName, name extension:TheExtension} to info for file (SomeFile as text)
if TheExtension is in {missing value, ""} then
set TheExtension to ""
else
set TheExtension to "." & TheExtension
end if
set {NewName, TheExtension} to {TheName, (ChangeCase of TheExtension to "upper")}
set TheName to text 1 thru -((count TheExtension) + 1) of TheName
tell application "System Events" to tell (get name of files of folder (SomeFolder as text))
repeat while it contains NewName
set Counter to text 2 thru -1 of ((100 + Counter + 1) as text) -- leading zero
set NewName to TheName & Divider & Counter & TheExtension
end repeat
end tell
return NewName
end GetUniqueName
to EditItems of SomeItems given Title:TheTitle, Prompt:ThePrompt
displays a dialog for multiple item edit (note that a return is used between each edit item)
for each of the items in SomeItems, a line containing it's text is placed in the edit box
the number of items returned are padded or truncated to match the number of items in SomeItems
parameters - SomeItems [list]: a list of text items to edit
TheTitle [boolean/text]: use a default or the given dialog title
ThePrompt [boolean/text]: use a default or the given prompt text
returns [list]: a list of the edited items, or {} if error
set {TheItems, TheInput, TheCount} to {{}, {}, (count SomeItems)}
if TheCount is less than 1 then return {} -- error
if ThePrompt is in {true, false} then -- "with" or "without" Prompt
if ThePrompt then
set ThePrompt to "Edit the following items:" & return -- default
else
set ThePrompt to ""
end if
else -- fix up the given prompt a little
set ThePrompt to ThePrompt & return
end if
if TheTitle is in {true, false} then if TheTitle then -- "with" or "without" Title
set TheTitle to "Multiple Edit Dialog" -- default
else
set TheTitle to ""
end if
set {TempTID, AppleScript's text item delimiters} to {AppleScript's text item delimiters, return}
set {SomeItems, AppleScript's text item delimiters} to {SomeItems as text, TempTID}
set TheInput to paragraphs of text returned of (display dialog ThePrompt with title TheTitle default answer SomeItems)
repeat with AnItem from 1 to TheCount -- pad/truncate entered items
try
set the end of TheItems to (item AnItem of TheInput)
on error
set the end of TheItems to ""
end try
end repeat
return TheItems
end EditItems
to ReplaceText of SomeText from OldItem to NewItem
replace all occurances of OldItem with NewItem
parameters - SomeText [text]: the text containing the item(s) to change
OldItem [text]: the item to be replaced
NewItem [text]: the item to replace with
returns [text]: the text with the item(s) replaced
set SomeText to SomeText as text
if SomeText contains OldItem then
set {TempTID, AppleScript's text item delimiters} to {AppleScript's text item delimiters, OldItem}
try
set {ItemList, AppleScript's text item delimiters} to {text items of SomeText, NewItem}
set {SomeText, AppleScript's text item delimiters} to {ItemList as text, TempTID}
on error ErrorMessage number ErrorNumber -- oops
set AppleScript's text item delimiters to TempTID
error ErrorMessage number ErrorNumber
end try
end if
return SomeText
end ReplaceText
to ChangeCase of SomeText to CaseType
changes the case or capitalization of SomeText to the specified CaseType using Python
parameters - SomeText [text]: the text to change
CaseType [text]: the type of case desired:
"upper" = all uppercase text
"lower" = all lowercase text
"title" = uppercase character at start of each word, otherwise lowercase
"capitalize" = capitalize the first character of the text, otherwise lowercase
returns [text]: the changed text
set SomeText to SomeText as text
if CaseType is not in {"upper", "lower", "title", "capitalize"} then return SomeText
return (do shell script "/usr/bin/python -c \"import sys; print unicode(sys.argv[1], 'utf8')." & CaseType & "().encode('utf8')\" " & quoted form of SomeText)
end ChangeCase
</pre>
Edit: how does the choose from list dialog handle those big strings? I'm guessing not very well - is that why you avoided using them?
Message was edited by: red_menace -
Drag and Drop of multiple components at once
Hi everybody,
I need to select and drag multiple components (Eg. JLabels) at once, it is quite simple to manage just one drag at a time but how can be managed a multiple drag?
I mean something like Windows files selection mechanism : using Ctrl + Left mouse click to select the components and then start dragging them all to the drop target.
Beneath the code I'm using for testing , clicking and dragging each JLabel to JTextField just cause the copy of JLabel text to the JTextField contents.
In the sample a left click on each displayed label sets a border just to identify the selected status of the labels to drag but there's no implementation of the drop mechanism that should copy all the selected JLabels text to the drop target (the JTextField).
import java.awt.Dimension;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.util.HashMap;
import javax.swing.BorderFactory;
import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.TransferHandler;
import javax.swing.UIManager;
import javax.swing.border.Border;
import javax.swing.border.CompoundBorder;
import javax.swing.border.EmptyBorder;
public class SelectableJLabel extends JPanel {
MouseListener listener = new DragMouseAdapter();
public Border getBorder(boolean getSelectedBorder) {
Border outsideBorder = BorderFactory.createEmptyBorder(2,2,2,2);
Border insideBorder = BorderFactory.createEmptyBorder(2,2,2,2);
if (getSelectedBorder)
insideBorder = BorderFactory.createEtchedBorder();
return BorderFactory.createCompoundBorder(outsideBorder, insideBorder);
private class DragMouseAdapter extends MouseAdapter {
public void mousePressed(MouseEvent e) {
System.out.println("Press!");
JComponent c = (JComponent) e.getSource();
JLabel lbl = (JLabel)c;
if (lbl.getBorder()==null || ((CompoundBorder)lbl.getBorder()).getInsideBorder() instanceof EmptyBorder) {
lbl.setBorder(getBorder(true));
TransferHandler handler = c.getTransferHandler();
handler.exportAsDrag(c, e, TransferHandler.COPY);
} else
lbl.setBorder(getBorder(false));
/* (non-Javadoc)
* @see java.awt.event.MouseAdapter#mouseClicked(java.awt.event.MouseEvent)
@Override
public void mouseClicked(MouseEvent e) {
public JLabel getSelectableLabel() {
JLabel selectableJLabel = new JLabel("You can't select me");
selectableJLabel.setBorder(getBorder(false));
selectableJLabel.setTransferHandler(new TransferHandler("text"));
selectableJLabel.addMouseListener(listener);
return selectableJLabel;
public SelectableJLabel() {
// a regular JLabel
add(getSelectableLabel());
add(getSelectableLabel());
add(getSelectableLabel());
// a look-alike JLabel
JTextField f = new JTextField("You can select me........................");
f.setDragEnabled(true);
//f.setEditable(false);
f.setBorder(null);
f.setForeground(UIManager.getColor("Label.foreground"));
f.setFont(UIManager.getFont("Label.font"));
add(f);
public Dimension getPreferredSize() {
return new Dimension(100, 100);
public static void main(String s[]) {
JFrame frame = new JFrame("SelectableJLabel");
SelectableJLabel panel = new SelectableJLabel();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().add(panel, "Center");
frame.setSize(panel.getPreferredSize());
frame.setVisible(true);
}Tnx in advance for HELP
Massimo
Edited by: JKut on May 2, 2010 10:48 AMFor multiple selections I recommend to use "JList". The "ListTransferHandler" provided in the "DropDemo" sample code supports multiple selections: [http://java.sun.com/docs/books/tutorial/uiswing/dnd/dropmodedemo.html]. To enable MULTIPLE_INTERVAL_SELECTION, simply remove the following statement in the "DropDemo" class:
list.setSelectionMode(ListSelectionModel.SINGLE_INTERVAL_SELECTION); -
CreateInsert and LOV with multiple return values
HI. I am on Build JDEVADF_11.1.2.3.0_GENERIC_120914.0223.6276.1
I have a View Object which is based on Entity Object.
View Object has customer_name and customer_id attributes.
customer_name attribute has LOV (input field with LOV) based on some other View Object (which of caurse holds customer name and customer id data)
I defined that when LOV return the chosen values it will populate customer_name with "Customer Name" value and customer_id with "Customer Id" value
All atributes are updatable
I droped my View Object on the page and also "CreateInsert" buton. When I click on "CreateInsert" button, I can see new row added as expected, customer_name field has LOV. I can choose from LOV and can see customers and customer_id data. But when I click OK in the LOV pop-up only customer_name attribute is populated!
I do see that customer_id is returned from LOV (I implemented ReturnPopupEvent listener), but still the customer id remains empty.
I though maybe I need to add LOV as auto submit = true and set LOV to be a partial trigger for customer_id. But still - it didn't help
However, if I run Application Module tester, I do get what I want. I can create new row and when I change customer name , both customer name and customer id fields are populated
Please adviceHi Michael,
On Lov VO, make sure you have at least one or combination of attributes as Key attribute. and re test.
Thanks,
Jeet -
Outlook 2013 crashing frequently, have removed, reinstalled, etc etc - to no avail
Before the "Outlook" crash, the application log always shows multiple warnings as below:
The rules engine reported a failed VL activation attempt.
Reason:0x8007232B
AppId = 0ff1ce15-a989-479d-af46-f275c6370663, SkuId = 771c3afa-50c5-443f-b151-ff2546d863a0
Trigger=TimerEvent
===================
"Off1ce15" - kind of a giveaway that this must be related, no??
This is "Office Home and Business 2013 32-bit" on windows 8.1u1 (32 bit)
Anybody at MS-support even remotely interested in troubleshooting this??There is a 'volume licence' Outlook2010 installed on this machine, it's been switched back and forth to this a few times, as Outlook 2013 has had numerous issues. The licence key was supplied by our Exchange server provider.
I suspect that Windows simply doesn't clean up after itself! This (recent clean installation) W8.1u1 machine has gone through these versions:
Office365 outlook2013 (trial) - which eventually crashed and burned, so I removed it.
Outlook2013 'volume licence' from my Exchange Server provider - also crashed and burned, so I removed it.
Outlook2010 'volume licence' from my Exchange Server provider.
Office2013 Home and Business ( including Outlook 2013) - but the Outlook2013 crashed and burned, so I removed it, and re-installed the Outlook 2010, which was working fine. Exchange provider has supplied me a volume licence key for Outlook 2010, but
I cannot for the life of me find a place to enter it!!
Have tried clean boot of windows, it doesn't solve the issue of Outlook Crashing. All other Office2013 modules work fine, no problems whatsoever with Excel, Word, PPT, etc.
Outlook safe mode doesn't work, either.. see these log excerpts:
The program OUTLOOK.EXE version 15.0.4615.1000 stopped interacting with Windows and was closed. To see if more information about the problem is available, check the problem history in the Action Center control panel.
Process ID: f78
Start Time: 01cfb37dc73f3a2d
Termination Time: 55
Application Path: C:\Program Files\Microsoft Office\Office15\OUTLOOK.EXE
Report Id: 96150ae0-218a-11e4-afc1-002564df0634
Faulting package full name:
Faulting package-relative application ID:
Faulting application name: OUTLOOK.EXE, version: 15.0.4615.1000, time stamp: 0x534cda15
Faulting module name: OUTLOOK.EXE, version: 15.0.4615.1000, time stamp: 0x534cda15
Exception code: 0xc0000005
Fault offset: 0x00034171
Faulting process id: 0xed0
Faulting application start time: 0x01cfb5976bc8928a
Faulting application path: C:\Program Files\Microsoft Office\Office15\OUTLOOK.EXE
Faulting module path: C:\Program Files\Microsoft Office\Office15\OUTLOOK.EXE
Report Id: aa3b48e7-218a-11e4-afc1-002564df0634
Faulting package full name:
Faulting package-relative application ID:
The description for Event ID 2001 from source Microsoft Office 15 cannot be found. Either the component that raises this event is not installed on your local computer or the installation is corrupted. You can install or repair the component on the local
computer.
If the event originated on another computer, the display information had to be saved with the event.
The following information was included with the event:
Microsoft Outlook
Outlook couldn't start last time. Safe mode could help you troubleshoot the problem, but some features might not be available in this mode.
Do you want to start in safe mode?
The description for Event ID 2000 from source Microsoft Office 15 cannot be found. Either the component that raises this event is not installed on your local computer or the installation is corrupted. You can install or repair the component on the local
computer.
If the event originated on another computer, the display information had to be saved with the event.
The following information was included with the event:
Microsoft Outlook
Outlook failed to launch in safe mode. Do you want to start repair?
... and so on ...
Immediately preceding the crash, there were hourly warnings as follow:
The rules engine reported a failed VL activation attempt.
Reason:0x8007232B
AppId = 0ff1ce15-a989-479d-af46-f275c6370663, SkuId = 771c3afa-50c5-443f-b151-ff2546d863a0
Trigger=TimerEvent
coincidence??
Will check out that OffCat tool, thanks! -
Sharing iPhoto and iTunes with multiple local users
My wife and I share the Intel iMac and we want to share both the iTunes and iPhoto libraries...
Can I just place them in the Users/Shared folder, do an Option (first time) launch from each account to identify it's location and can we both access them from there, or is there more to it...
We also want to be able to import and download photos/music from either account into the same library....
thanksShawn:
Here are some suggested methods to share:
iPhoto: Sharing libraries among multiple users
http://ad.hominem.org/log/2005/07/acl.php
http://discussions.apple.com/thread.jspa?messageID=2151309� (see Lori's post and links)
http://discussions.apple.com/thread.jspa?threadID=579542&tstart=0
http://www.captnswing.net/2004/03/20/shareiphotolibrary.html
And if you'd like to have each user have a total independent library while sharing the same source files see Tutorial #3.
Do you Twango?
TIP: For insurance against the iPhoto database corruption that many users have experienced I recommend making a backup copy of the Library6.iPhoto database file and keep it current. If problems crop up where iPhoto suddenly can't see any photos or thinks there are no photos in the library, replacing the working Library6.iPhoto file with the backup will often get the library back. By keeping it current I mean backup after each import and/or any serious editing or work on books, slideshows, calendars, cards, etc. That insures that if a problem pops up and you do need to replace the database file, you'll retain all those efforts. It doesn't take long to make the backup and it's good insurance.
I've written an Automator workflow application (requires Tiger), iPhoto dB File Backup, that will copy the selected Library6.iPhoto file from your iPhoto Library folder to the Pictures folder, replacing any previous version of it. You can download it at Toad's Cellar. Be sure to read the Read Me pdf file. -
Question regarding ScrollView and pageControl with multiple XIBs
Hi,
I am very new to iPhone programmming and OO type programming in general so please forgive me for my basic questions.
I am trying to set a paging scrollview up with each page being loaded from a different XIB and put into a view controller. This viewcontroller is attached to a scrollview that's put on a "Detail" view. I have this working OK with blank XIB pages.
My question is, when I start adding fields/buttons to the different XIBs how should I then process the actions etc. Do I create a seperate .h and .m file for each XIB and add the individual screen processing into the individual classes or do I use a single class (the "Detail" screen) and do all the processing in that class?, is that even possible?
I do hope that this makes sense. I'm still going through the basic learning books and I'm maybe trying to run before I can walk.
Any help is most appreciated.
ThanksHi Ziximo, and welcome to the Dev Forums!
Ziximo wrote:
I am very new to iPhone programmming and OO type programming in general so please forgive me for my basic questions.
No forgiveness is necessary. You came to the right place.
I am trying to set a paging scrollview up with each page being loaded from a different XIB and put into a view controller. This viewcontroller is attached to a scrollview that's put on a "Detail" view. I have this working OK with blank XIB pages.
In case it's useful to you, here's a thread which shows how to use the PageControl sample app as the template for what you're doing: [Re: Flipping through views help|http://discussions.apple.com/thread.jspa?messageID=10417960�].
My question is, when I start adding fields/buttons to the different XIBs how should I then process the actions etc.
The advice you have from thomas-r is right on target, so I'll just try to add to that. Firstly, I think you may be making a diligent attempt at "top-down" design, which is commendable. However there's a dirty little secret that working programmers don't share with managers: Quite often we don't produce the functional specification until we get the code working.
In other words, thomas-r's reference to Murphy isn't an insult. That's just how software gets designed.
In general, the decision to make a new class should be based on encapsulation and re-usability. For example when you get a memory warning, you might want to release all of the resources required for a screen that isn't currently visible. If that screen and its controller can be fully regenerated from one nib, this can be an easy task.
As another example, say the top-level controller is an instance of your ScrollViewController class. If you limit that controller to managing the scroll view and page control, you'll probably have a class you can reuse the next time you need a paging scroll view. But if you pack the functionality for multiple content views into that same controller, the class will only be useful for an identical app.
.. or do I use a single class (the "Detail" screen) and do all the processing in that class?, is that even possible?
So, no, I would definitely not attempt to put all the control in one class. Yes, it's possible, but besides being bad practice, it's awkward to implement. For example, when you make a nib which is owned by a view controller, it's easy to connect that controller's outlets and action methods to controls which are defined in that nib. There are ways to connect controls to an object defined in another nib, but it's much more difficult. It's not a "natural" configuration, and that by itself should give us second thoughts about our design. On the other hand, if we make one giant nib which is owned by the top-level controller, memory management goes out the window. We would need to unload everything in that nib to gracefully handle a memory warning.
Do I create a seperate .h and .m file for each XIB and add the individual screen processing into the individual classes ...
Yes. This gives us the reusability and encapsulation we want. The only remaining question is: "Do I need a separate controller class with it's own custom xib for each screen?". Well you may not. There could be two or more screens that are so similar (e.g. the same layout and functionality but with a different image) they can each use an instance of the same controller class and share the same xib.
I usually start with a different controller class and a different xib for each screen. Then, near the end of the project, I'll look at all those controllers and see if two or more are nearly identical. If so, I might get rid of one or more classes, and possibly one or more xibs as well. But I'd almost never assume I can merge two controller classes at the outset. If I did that, I might start adding kludges to the merged class as I found differences between the screens I hadn't seen earlier. When the merged class finally got too complex for anyone to maintain, the job of splitting it up might be nasty.
I do hope that this makes sense.
I think that's my line.
I'm still going through the basic learning books and I'm maybe trying to run before I can walk.
If you've suceeded in getting the skeleton working--i.e. you're paging through blank screens, each with it's own vanilla controller/xib, without any bugs, I'd say you're more than ready for the question you're asking here. And it's a very good question.
\- Ray -
Domain Agents and E6900 with multiple NICs.
Hello,
I have some issues configuring Sun management Center 3.6 (and 3.6.1) on a network with this characteristics:
2 x E6900 (with 2 Domains each one)
1 x v210
The Server Component of Sun Management Center is installed on the v210. In this machine are installed the Platform Agents of the 2 System Controllers of the 2 E6900.
Each domain has installed de Sun Management Center Agent.
The network configuration of the Domains is this:
Each domain has 3 NIC on 3 different network interfaces, and each NIC has its own hostname. One of this NIC is destinated to the administration network to be used for the Sun Management Center. This nic, as I said before, has its own hostname but it its different of the nodename (the node name is the same as the public interface of the domain, not the administration interface).
The Domains does not use DNS, and the information included on the /etc/hosts is related to local NICs and the NICs of the other Domains, but anyone contains the NIC of the admin interface of other domain nor the NIC of the v210.
The v210 does not has DNS neither, and has only their own information on /etc/hosts.
All Domains has Solaris 9, and v210 has Solaris 10.
Basically the problem is:
"The Domain Agents cannot communicate with SunMC Server", when I manually add each agent. The discovery process doesn't work neither.
I checked the domain-config.x of one domain and it shows:
agent = {
agentServer = "venwas1"
logicalAddressMode = "ip"
snmpPort = "1161"
"venwas1" is the hostname of the public interface, nor the administration interface.
I changed the value for the hostname of the administration interface with no success; then changed for the ip address of the administration interface; and no success neither.
The default platform agent works, but does not appers with the corrent icon on the SunMC console. Its appears like a folder icon, and the documentation said that the Platform Agents is represented with a specific Icon.
Please, anyone can help me ?
Thanks in advance.Hi Alejandro,
I checked the domain-config.x of one domain and it
shows:
agent = {
agentServer = "venwas1"
logicalAddressMode = "ip"
snmpPort = "1161"
nwas1" is the hostname of the public interface, nor
the administration interface.
I changed the value for the hostname of the
administration interface with no success; then
changed for the ip address of the administration
interface; and no success neither.If you just change the hostname or IP, but don't do anything else, it won't work as the Agent has already created security keys for that old entry and needs to be reseeded. Change the entry to the IP that's on the same network as your SunMC Server, then run this command on the Agent while it's turned off:
/opt/SUNWsymon/sbin/es-run base-usm-seed.sh -s <SEED> -c agent
..replacing <SEED> with the same seed/password you used on your SunMC Server. Then start the Agent back up, wait for it a couple minutes, and try to make an icon for it again.
The default platform agent works, but does not appers
with the corrent icon on the SunMC console. Its
appears like a folder icon, and the documentation
said that the Platform Agents is represented with a
specific Icon.If the icon is incorrect then your SunMC Server is missing some files (or you've found a bug). You'll want all these addons installed on your Server:
Dynamic Reconfiguration for Sun Fire High-End and Midrange Systems
Sun Fire Midrange Systems Platform Administration
Sun Fire Midrange Systems Domain Administration
If you think you may be missing some (look in /var/opt/SUNWsymon/install/install.[timestamp] to see how you answered questions during your last install) you can run /opt/SUNWsymon/sbin/es-inst again and point it to your distribution media and it will only ask about packages that may be missing. If you do end up adding in some of the Midrange addons then a simple Console restart should refresh your Platform icons.
Regards,
[email protected]
http://www.HalcyonInc.com -
Content based routing and XML with multiple objects
I have some structure:
<contracts>
<contract>
<department>1</department>
</contract>
<contract>
<department>1</department>
</contract>
<contract>
<department>2</department>
</contract>
</contracts>
I need to route contract to 2 system based on <department> value:
contracts/department = 1 --> System1
contracts/department = 2 --> System2
Will XI split my XML (based on Content Routing rules in ID) into 2 structures (with departmet=1 and department=2 accordingly) ?
Or I have to perform 1ToN mapping? I don't like it bacause it will be diffucult to monitor hundred of messages.Alternatively if you donot like 1:n mapping and BPM.
Create two message mappings in the IR
1.Source :<contracts>
<contract>
<department>1</department>
</contract>
<contract>
<department>1</department>
</contract>
<contract>
<department>2</department>
</contract>
</contracts>
Target:
<contracts>
<contract>
<department>1</department>
</contract>
<contract>
<department>1</department>
</contract>
Basically mapping generates a target structure which has only department 1.
2.Same like step1 but the mapping should generate the XML with department = 2.
Once requires steps are done in the ID , do the content based routing in the reciever determination and give the appropraite message mapping in the interface determination.
That should your problem and also you will like doing it as it does not involve any split level mapping..:)
Maybe you are looking for
-
File Adapter - Content conversion parameters at Receiver
Hi all, I'm trying to translate a XML message to a text line file. My XML message is this: <?xml version="1.0" encoding="UTF-8"?> <ns1:Proveedor_100011 xmlns:ns1="http://sap.com/xi/webservices/buyordint"> <config> <directory>c:/tmp</directory> <filen
-
Hi Guys My iTunes was working fine yesterday but today I try it and it doesn't work, it crashes each time it tries to open, here is a screenshot of what I'm getting. http://i38.tinypic.com/2924ju1.jpg I am running Win XP, I have AVG Anti-virus, I don
-
Missing Document Number Report in Oracle Accounts Payable
Hi All, Can you please let me know if there alternative report for Missing Document Number Report in R12...... similar to what we had in 11.5.9 Instance In AP Thanks Edited by: user5358827 on Apr 19, 2010 11:31 AM
-
Devices not shown on sidebar of iMac ie iPod ?
Hi I am going crazy since the update of the software IOS6 onto my ipod. Now my imac do not shaow the device of the ipod [or even the iphone] on the sidebar. So I can't even drag songs from Imac to my ipod! Can anyone help please. The old software wor
-
Hi Azure team, Will service administrator know when a new co-administrator has been added by another co-administrator? Will service admin will receive any mail alert? Thanks,