How to avoid ModelLayer Update when validation fails in ValueChangeListener
Hi,
One of the requirement in my application is to avoid model layer update when a value is changed in a field and it is not a valid value according to business functionality. Scenario is explained below.
1. Screen has one field SSN no.
2. User enters 889787873 (According to functionality, SSN no. should not start with 8 or 9)
3. The moment user enters and does Tab out, Value change listener gets fired (AutoSubmit is set to true and value change listener is mapped to it)
4. I have a util method isValidSSN(int ssnNo) that gets the SSN no as input argument, validates it, returns true if it is valid otherwise false.
There can be many ways to achieve the above said functiontlity including the best way of keeping the validation at entity attribute level. But that is not what i am looking for. I am doing migration of desktop application and want to mimic the code as how as it is (According to client requirement).
Requirement behavior:
In value change listener, I should get the newly entered value (Not from ValueChangeEvent.getNewValue()), validate it. If it is valid, I should update the model. If not, I should not do model layer update call at all as i want to keep my transaction undirty, but show invalid SSN message to the user.
Requirement:
1. Get the new value inside valueChange listener. I don't want to use valueChangeEvent.getNewValue() because what i said as SSN is just an example but in our app, we use many data types including custom domain data types. So i cannot expect valuechangeEvent.getNewValue() always gives me the new value with proper data type. I also know i cannot use UiComponent.processUpdate(facesContext) to get the new value from VO attribute. Because calling processUpdate issues setAttribute call at model layer, which in turn makes the transaction dirty. So i need to access the newly entered value with proper data type in some other way.
2. If any itemChange logic fails, I should not update the model layer but directly comes to render response. I hope this is doable by calling FacesContext.renderResponse() API but need confirmation or any other way if i am wrong.
Thanks in Advance.
Raghu
Thanks to all for your responses. Regarding accessing of new value inside value change listener, I am sure ValueChangeEvent.getNewValue() is not going to give me the value with proper data type. I am not using immediate attribute anywhere but use custom domain data type with masking (i.e. Formatter Format). Also I use InputDate field. Always valueChangeEvent.getNewValue() gives me the string representation of the value but not with actual data type.
Question:
1. Is there any API, that gets the valueChangeEvent.getNewValue() and the UI components as parameters and return the data with proper data type?
2. I need to get the newly value with proper data type inside valueChangeListener. Is it achievable? If so, how?
Need your help.
Similar Messages
-
How to avoid shared locks when validating foreign keys?
I have a table with a FK and I want to update a row in that table without being blocked by another transaction which is updating the parent row at the same time. Here is an example:
CREATE TABLE dbo.ParentTable
PARENT_ID int NOT NULL,
VALUE varchar(128) NULL,
CONSTRAINT PK_ParentTable PRIMARY KEY (PARENT_ID)
GO
CREATE TABLE dbo.ChildTable
CHILD_ID int NOT NULL,
PARENT_ID INT NULL,
VALUE varchar(128) NULL,
CONSTRAINT PK_ChildTable PRIMARY KEY (CHILD_ID),
CONSTRAINT FK_ChildTable__ParentTable FOREIGN KEY (PARENT_ID)
REFERENCES dbo.ParentTable (PARENT_ID)
GO
INSERT INTO ParentTable(PARENT_ID, VALUE)
VALUES (1, 'Some value');
INSERT INTO ChildTable(CHILD_ID, PARENT_ID, VALUE)
VALUES (1, 1, 'Some value');
GO
Now I have 2 transactions running at the same time:
The first transaction:
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;BEGIN TRAN
UPDATE ParentTable
SET VALUE = 'Test'
WHERE PARENT_ID = 1;
The second transaction:
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;BEGIN TRAN
UPDATE ChildTable
SET VALUE = 'Test',
PARENT_ID = 1
WHERE CHILD_ID = 1;
If 'UPDATE ParentTable' statement runs a bit earlier, then 'UPDATE ChildTable' statement is blocked untill the first transaction is committed or rollbacked. It happens because SQL Server acquires shared locks when validating foreign keys, even
if the transaction is using read uncommitted, read committed snapshot (read committed using row versioning) or snapshot isolation level. I cannot see why change in the ParentTable.VALUE should prevent me from updating ChildTable. Please note that ParentTable.PARENT_ID
is not changed by the first transaction, which means that from FK's point of view whatevere is set to the ParentTable.VALUE is never a problem for referential integrity. So, such blocking behavior seems to me not logical. Furthermore, it contradicts to the
MSDN:
Transactions running at the READ UNCOMMITTED level do not issue shared locks to prevent other transactions from modifying data read by the current transaction. READ UNCOMMITTED transactions are also not blocked by exclusive locks that would prevent the
current transaction from reading rows that have been modified but not committed by other transactions.
Does anybody know how to workaround the issue? In other words, are there any tricks to avoid shared locks when validating foreign keys? (Disabling FK is not an option.) Thank you.
AlexeyIf you change the primary key of the parent table to be nonclustered, there is no blocking.
Indeed, when I update ParentTable.VALUE, then:
in case of PK_ParentTable is clustered, a particular row in the clustered index is locked (request_mode:X, resource_type: KEY)
in case of PK_ParentTable is non-clustered, a particular physical row in the heap is locked (request_mode:X, resource_type: RID).
and when I update ChildTable.PARENT_ID, then:
in case of PK_ParentTable is clustered, this index is used to verify referential integrity:
in case of PK_ParentTable is non-clustered, again this index is used to verify referential integrity, but this time it is not locked:
It is important to note that in both cases SQL Server acquires shared locks when validating foreign keys. The principal difference is that in case of clustered PK_ParentTable the request is blocked, while for non-clustered index it is granted.
Thank you, Erland for the idea and explanations.
The only thing that upsets me is that this solution cannot be applied, because I don't want to convert PK_ParentTable from clustered to non-clustered just to avoid blocking issues. It is a pity that SQL Server is not smart enough to realize that:
ParentTable.PARENT_ID is not changed and, as a result, should not be locked
ChildTable.PARENT_ID is not actually changed either (old value in my example is 1 and the new value is also 1) and, as a result, there is no need at all for validating the foreign key.
In fact, the problem I described is just a tip of the iceberg. The real challenge is that I have deadlocks because of the FK validation. In reality, the first transaction has an additional statement which updates ChildTable:
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
BEGIN TRAN
UPDATE ParentTable
SET VALUE = 'Test'
WHERE PARENT_ID = 1;
UPDATE ChildTable
SET VALUE = 'Test'
WHERE PARENT_ID = 1;
The result is famous message:
Msg 1205, Level 13, State 51, Line xx
Transaction (Process ID xx) was deadlocked on lock resources with another process and has been chosen as the deadlock victim. Rerun the transaction.
I know that if I change the order of the two statements, it will solve the deadlock issue. But let's imagine I cannot do it. What are the other options?
Alexey -
Adobe changes my numeric field to include commas when validation fails
Adobe changes my numeric field to include commas when validation fails. My numeric validation setting is num{zzzzzzz9.99}. I want my numeric field to display as 99999999.00, no commas and only to have 2 decimals places. I added this validation to the Display, Edit, Validation and Data tabs under the validation pattern dialog box.
When validation fails, adobe changes the display of the field to include commas and drops the decimal places:
999,999,999
How can I prevent this from happening? Any feedback is greatly appreciated.
I've also added a change event to the field as well:
\\only allows numbers and period.
if (xfa.event.newText.match(/[^0-9.]/))
xfa.event.change = "";
\\only allows 11 characters to be entered.
var maxLength = 11;
if(xfa.event.newText.length >maxLength)xfa.event.change = "";I want it to display only numbers followed by 2 decimal places.
999999999.00
If I type all numbers in my field like 999999999999 and I go over the character limit of 11. My validation fails and then my numeric field is displayed with commas, 999,999,999 without the 2 decimal places. Is there a way to prevent adobe from automatically changing my fields? -
How to avoid the dialogue when converting from context menu
This is a follow-up to http://forums.adobe.com/message/2016146#443364 which was locked due to a bug.
i would like to know how i can avoid the 'save as' dialogue when using the context menu to convert a word file to pdf using windows XP/acrobat 8/word 2007.
so far, it always prompts me for the filename, which is annoying as it does not allow me to batch-convert several files and let the thing run its course.
the solution provided by Steve in the other thread does not work - even if the plugin from word does not propt for a filename, it still does when triggered from explorer/context menu.
so back to square one: how to avoid that dialogue when not opening word at all?
cheers, thanks for any help. michaelFor a permanent change, START>PRINTERS>right click on Adobe PDF printer and select properties>General>Printing Preferences>Adobe PDF Settings. Under the settings tab, uncheck the box related to asking for a name. Pretty sure that is the location, but it may vary with version.
-
Adding message to FacesContext when validation fails...
Hi
I am trying to add a validation message whenever a <af:inputText> value fails validation.
This error message should be displayed beside the inputText component.
The inputText is set to autoSubmit which will trigger the validator.
The following is what I have:
JSF page:
<af:inputText id="textUI"
label="my label"
maximumLength="200"
value=" .... "
required="true"
validator="#{backing_text.validateText}"
autoSubmit="true"/>
Backing bean:
public void validateText(FacesContext facesContext,
UIComponent uiComponent, Object value) {
FacesMessage message = new FacesMessage();
message.setSummary("error summary");
message.setSeverity(FacesMessage.SEVERITY_ERROR);
FacesContext.getCurrentInstance().addMessage(uiComponent.getId(), message);
throw new ValidatorException(message);
With the above code, when validation fails, no message is displayed beside the errorenous inputText component.
Does anyone have any idea where I could have gone wrong?
Thanks
Erictry removing the autoSubmit="true" from the jsp.
-
How to avoid launching Labview when invoking VI by Teststand
Hi, friends.
I'm a learner of teststand. I wrote some VIs by Labview. Now I want to invoke them in teststand environment. But when I run the sequence. Labview will be automatically launched. How to avoid launching Labview when I run the sequence?
Thanks.
Solved!
Go to Solution.I'm not sure that I follow what you are saying.. But it sounds like when the VI is called, the LabVIEW development software is started and you want to avoid that.
If you create an executable or dll and call that from within TestStand, it should not call the development environment. You would need to have the LabVIEW run-time engine installed on the target PC.
It has been many years since I've used TestStand with LV, so my memory may not be accurate. I think the above had worked for me. However, it seems that I recall something about having the LV code in debug mode causing it to open the development environment.... but it's a distant memory. You're not using breakpoints where the LV VI is being called, are you?
R -
How to avoid data repetation when using select statements with innerjoin
how to avoid data repetation when using select statements with innerjoin.
thanks in advance,
satheeshyou can use a query like this...
SELECT DISTINCT
frg~prc_group1 "Product Group 1
frg~prc_group2 "Product Group 2
frg~prc_group3 "Product Group 3
frg~prc_group4 "Product Group 4
frg~prc_group5 "Product Group 5
prc~product_id "Product ID
txt~short_text "Product Description
UP TO 10 ROWS
INTO TABLE l_i_data
FROM
Joining CRMM_PR_SALESG and
COMM_PR_FRG_ROD
crmm_pr_salesg AS frg
INNER JOIN comm_pr_frg_rod AS prd
ON frgfrg_guid = prdfragment_guid
Joining COMM_PRODUCT and
COMM_PR_FRG_ROD
INNER JOIN comm_product AS prc
ON prdproduct_guid = prcproduct_guid
Joining COMM_PRSHTEXT and
COMM_PR_FRG_ROD
INNER JOIN comm_prshtext AS txt
ON prdproduct_guid = txtproduct_guid
WHERE frg~prc_group1 IN r_zprc_group1
AND frg~prc_group2 IN r_zprc_group2
AND frg~prc_group3 IN r_zprc_group3
AND frg~prc_group4 IN r_zprc_group4
AND frg~prc_group5 IN r_zprc_group5.
reward it it helps
Edited by: Apan Kumar Motilal on Jun 24, 2008 1:57 PM -
How to trigger email notification when users fail to reset your password in fim 2010 r2.
Hi,
how to trigger email notification when users fail to reset your password in fim 2010 r2
Regards
Anil KumarHi Sylvain,
I did all thing as you told me.First i created Criteria based Set after this we created a Workflow type Action and Actvities Type Notifcation Email template and finally i called this Workflow in MPR as Set Transition and call Set that i was created below.and
check Advance View of Set this gives
<Filter xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" Dialect="http://schemas.microsoft.com/2006/11/XPathFilterDialect"
xmlns="/Request[(Creator">http://schemas.xmlsoap.org/ws/2004/09/enumeration">/Request[(Creator = 'b0b36673-d43b-4cfa-a7a2-aff14fd90522') and (RequestStatus = 'Denied or PostProcessingError')]</Filter>
But this is not working for me so please tell me where i am wrong.
Regards
Anil Kumar -
Hi,
How to trigger email notification when users fail to give correct answers to reset your password in fim 2010 r2
Senario:I want put wrong answering to the Questions that i was during registration if i give wrong answers to the questions then a Email Notification should be trigger to Users.
Regards
Anil KumarHi Sylvain,
I did all thing as you told me.First i created Criteria based Set after this we created a Workflow type Action and Actvities Type Notifcation Email template and finally i called this Workflow in MPR as Set Transition and call Set that i was created below.and
check Advance View of Set this gives
<Filter xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" Dialect="http://schemas.microsoft.com/2006/11/XPathFilterDialect"
xmlns="/Request[(Creator">http://schemas.xmlsoap.org/ws/2004/09/enumeration">/Request[(Creator = 'b0b36673-d43b-4cfa-a7a2-aff14fd90522') and (RequestStatus = 'Denied or PostProcessingError')]</Filter>
But this is not working for me so please tell me where i am wrong.
Regards
Anil Kumar -
How to avoid waiting forever when Updating a locked row ?
Hi all,
We have front-end application (ADF BC) on Oracle 10g database. From the adf we call stored procedure that execute the dml below :
UPDATE DOC_NUMBER SET doc_nbr = doc_nbr + 1
WHERE REGISTER = pRegsCode AND doc_code = pDocCode AND
loc_code = pLocCode AND
doc_year = vDocYear
RETURNING TO_CHAR(doc_nbr, '0000000') INTO vDocNo ;
Sometimes, this statement wait very long, I see in EM Top SQL that the Wait value = 99.66%. I assume this is caused by another user run same program and Not Commit.
So the question is :
1) How to make the 'UPDATE...' statement only wait 10 seconds, if fail to get the lock then time out ?
2) If a user run the stored proc and do not Commit, how to make the transaction 'Expires' after 10 seconds so that it does not block other users ??
FYI, the COMMIT part is not in the stored proc, it is done in ADF level.
That is why if there is error in ADF after executing the stored proc, the transaction left Uncommitted
Thank you very much for your help,
xtantoThis is not an Oracle issue and cannot really be sensible addressed (if at all) at Oracle level.
How is Oracle suppose to know that after 10 seconds (or minutes) to "expire" (rollback) all uncommitted transactions? This deals with the client side of the client-server. How to interact with the client. When to determine that the user on the client is idle. Etc.
There is no triggering/event mechanism I know of inside an Oracle server session that can be fired after the Oracle session has been idle for a period of time. The closest to that is DCD (Dead Connection Detection) - which is n.a. as the client is not dead, just idle.
The application controls and manages the the user interaction. It is in a far better position to realise that the user is not responding, and then to rollback its Oracle session.
This should be therefore done by the client and not Oracle. In its simplest form, you have a session handle in the client for your Oracle session. You create a global boolean variable (called something like openTransaction) in the application. This is set to TRUE when a transaction (e.g. select for update, insert, updare or delete) is started.
An application timer runs every n number of seconds. When it runs, it checks openTransaction. If true, it issues a ROLLBACK statement on that session handle.
This should do the trick.. in large hammer fashion way. Any such implementation will need careful thought and consideration of the actual business requirements and business process flow.
It is very seldom that in business, clerks John and Jane will be working with the very same client file/invoice/whatever at the exact same time. And when there is conflict, you want to make sure that either Jane or John works on that at a time.
So before even looking for a technical solution to your problem, I would first determine what the business process flow are and the boundaries of the business transaction, in order to realise a solution. -
Why are inputText values within a dataTable tag lost when validation fails?
Hi, As a test, I have three fields outside of a dataTable tag and three fields inside a dataTable tag.
I enter data into field1, field3 and all of the fields within the dataTable. Field2 is left empty and is required. I press the 'go' button which gets to the validation phase and immediately redraws the web page and says 'value is required' which is what it should do.
What shocks me at this point is that the field values inside the datatable are lost. They are back to their original blank values.
It like even though validation fails(the model is not updated), the datatable is redrawn using the model data which is still blank. The renderer forgets that those fields within the datatable had data typed into them.
Is this a bug? and how do I get around it? I don't want to lose what was typed in.
here is my example:
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
<html>
<body>
<f:view>
<h:form>
<h:panelGrid columns="2">
<h:outputText value="field1"/><h:inputText value="#{example.field1}"/>
<h:outputText value="field2 required"/><h:inputText required="true" value="#{example.field2}"/>
<h:outputText value="field3"/><h:inputText value="#{example.field3}"/>
</h:panelGrid>
<h:panelGrid columns="1">
<h:outputText value="dataTable"/>
<h:outputText value="---------"/>
<h:dataTable value="#{example.lines}" var="line">
<h:column>
<h:inputText value="#{line.text}"/>
<f:facet name="header">
<h:outputText value="column1"/>
</f:facet>
</h:column>
</h:dataTable>
<h:commandButton value="go"/>
<h:outputText value="errors"/>
<h:outputText value="---------"/>
<h:messages showDetail="true"/>
</h:panelGrid>
</h:form>
</f:view>
</body>
</html>
package test;
import java.util.ArrayList;
public class Example {
private String field1;
private String field2;
private String field3;
private ArrayList lines = new ArrayList();
public Example() {
lines.add(new Line());
lines.add(new Line());
lines.add(new Line());
public String getField1() {
return field1;
public void setField1(String field1) {
this.field1 = field1;
public String getField2() {
return field2;
public void setField2(String field2) {
this.field2 = field2;
public String getField3() {
return field3;
public void setField3(String field3) {
this.field3 = field3;
public ArrayList getLines() {
return lines;
public void setLines(ArrayList lines) {
this.lines = lines;
package test;
public class Line {
private String text;
public String getText() {
return text;
public void setText(String text) {
this.text = text;
<managed-bean>
<managed-bean-name>example</managed-bean-name>
<managed-bean-class>test.Example</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
</managed-bean>I posted about this bug a month ago and then again twice more (as recently as last week) and got zero responses. I piddled away so much time thinking I was crazy to believe this framework could have such a gaping hole in the fuselage that it was crazy. The more unsettling part too was the fact that the logging in the jsf code is so pathetic that you have no clue even with it on full that it's throwing your data away, they have unit tests in their code, including in-container tests, and they didn't have a test that turned this up? Hello? A project that has been going for this long should not have torture traps like this in it. Sorry for my negative post. To end on a positive note, I am looking forward to finding out about oracle's stuff. And Sun wonders why no one uses their stuff.
Does the Oracle JSF implementation require OAS? -
Report shows "No data found" when validation fails
Hi folks,
I'm new to the OTN and have a short question regarding validations/report pagination.
We are using Apex 4.0.2.00.07.
I have a page containing a report with three columns.
First column is a checkbox (f30), the second one a date picker and the third one is a value field (f34).
I'm trying to build a validation for the value field (should only allow numeric values, but is varchar2) and used a validation with "Function Returning Boolean".
The PL/SQL code is:
DECLARE
vrow BINARY_INTEGER;
v_number FLOAT:=0;
BEGIN
FOR i IN 1 .. APEX_APPLICATION.g_f30.COUNT
LOOP
BEGIN
vrow := APEX_APPLICATION.g_f30 (i);
v_number := to_number(APEX_APPLICATION.g_f34(vrow));
RETURN TRUE;
EXCEPTION
WHEN OTHERS THEN
RETURN FALSE;
END;
END LOOP;
END;
The validation works fine, but every time I enter a non numeric value and the validation fails (error message is displayed correctly as notification) I get a "report error: ORA-01403: no data found" in the pagination area of the report.
Tried to disable pagination completely, but the error still displays when the validation fails.
Any help would be appreciated.
Thanks in advance and regards
SandroContent of the checkboxes is ok, debugging showed
1:7
2:8
(records 7 and 8 where ticked)
Debugging console also shows:
0.10900 0.00000 Processing point: Before Box Body
0.10900 0.00000 Region: Shareclassinformation
0.10900 0.00000 Item: P59_IS
0.10900 0.00000 Item: P59_NA
0.10900 0.00000 Item: P59_CO
0.10900 0.00000 Region: Attribute Selection
0.10900 0.00000 Item: P59_LO
0.10900 0.00000 Item: P59_ID
0.10900 0.00000 Item: P59_IDAH
0.10900 0.00000 Item: P59_IDAT
0.10900 0.00000 Item: P59_SHO
0.10900 0.00000 Item: P59_UTD
0.10900 0.00000 Item: P59_X NA
0.12500 0.00000 Region: Attributes
0.12500 0.23400 Item: P59_NOT
0.12500 0.00000 show report
0.12500 0.00000 determine column headings
0.12500 0.00000 parse query as: DB
0.35900 0.14100 binding: ":P59_LOV_AT"="P59_LOV_AT" value="64"
0.35900 0.00000 binding: ":P59_IDT"="P59_IDT" value="51"
0.50000 0.01500 print column headings
0.50000 0.00000 rows loop: 20 row(s)
*0.51500 0.01600 report error: ORA-01403: no data found*
0.51500 0.00000 Computation point: After Box Body
... -
How to avoid safety warning when opening a pdf from an link in another pdf?
I make pdf in Acrobat with links to other pdf files av have made. When i try to click a link to open the pdf, i get the safety question if trust it or if i will block it. How to avoid that question all the time?
Hello Kvalitetetsansvarlig
Try adding the PDF to the trust location in Acrobat
Edit -> Preferences-> Security (Enhanced), Click on "Add File", and browse to your file.
Click on "OK" button and check.
Regards,
Deepak -
Will B2B Adapter in SOA Composite receives fault when validation fails ?
Hi Guys,
Can any one clarify the following questions on B2B ?
1. Can B2B Adapter receive exception whenever validation fails on b2b console after data sent from SOA Composite? if not how can we implement fault to soa composite in case of fault in b2b console?
2. How can SOA Composite having b2b adapter configured with send operation know about fault happened in b2b console due agreement fail or validation fails or configuration fails?
3. How can we handle faults in case of inbound scenario?Exception is handled in oracle b2b.
All the execeptions are sent to IP_IN_QUEUE( in case of AQ) and B2B_IN_QUEUE( in case of JMS) with the consumer as "b2berror".
You can configure your B2B adapter to pull out the exception messages in your soa composite. -
How to avoid clear record when tab pages changes
Hi All
I am using oracle forms 10g and db 10g.
I have created a form with four tab pages. Namely "EXPENSE" , "AMOUNT_DETAILS", "SUPPLIER" , "ACCOUNT".
When i enter a data in page 1 ie Expense and move to next page page2 "AMOUNT_DETAILS", and enters data in page3 "SUPPLIER" and when i come back to page1 "EXPENSE" and also Page2 "AMOUNT" the data get cleared in Tab pages. There is no data again i need to enter the data manually.
Can any one suggest me how to avoid this clear data.
Thanks & Regards
SrikkanthHi,
Thanks once again for your quick response.
I have checked it , i was working with oracle apps.Now i have entered all the datas in the four tab and press save button in the screen at that time also the data get cleared.Can you please tell is there any work around for this.
regards
Srikkanth
Maybe you are looking for
-
Macbook pro retina graphic glitch
Hello, I'd like to share with you my story with the problems I've had with my macbook pro retina 15' 2012 (with both intel and nvidia graphics) and ask for some help. First of all, back when it still had Mountain Lion as its OS I already detected som
-
Happy now I've gone back to Snow Leopard
When Lion was first released I violated my personal rule of never doing a major upgrade to any operating system on any computer (because of potential unpredictable side effects like needing to replace software), and upgraded my 2008 Macbook from Snow
-
A pop up screen showed on my Droid Charge today that said I needed to update. I chose to update. Now I cannot set my phone back to the default screen lock puzzle piece. It does not show up under the display settings. Any suggestions?
-
Import slides from scanner for Photoshop Elements 13
How do I import slides from my Epson scanner. I don't get the option of what type, photo, negative or slide to import like I did on a previous Photoshop Elements. I am using Elements 13 now. I would appreciate the help. Thanks, Pat
-
A sobering historical perspective
Let me say that I am disenchanted with LR. That said, I began thinking about companies that tried to combine programs. The one that I remember is Microsoft trying to have a single program for Word, Excel and Access. That single program is no more. I'