[svn:fx-3.x] 8510: Eliminating Datagrid header flicker which occurs under various circumstances .

Revision: 8510
Author:   [email protected]
Date:     2009-07-10 11:48:49 -0700 (Fri, 10 Jul 2009)
Log Message:
Eliminating Datagrid header flicker which occurs under various circumstances.
Reviewer: Alex
Bugs: SDK-14571.
QE Notes: Opened a new item to track the remaining performance item (e.g. header is still regenerated too often).
Doc Notes: None.
Ticket Links:
    http://bugs.adobe.com/jira/browse/SDK-14571
Modified Paths:
    flex/sdk/branches/3.x/frameworks/projects/framework/src/mx/controls/DataGrid.as

Similar Messages

  • [svn:fx-4.x] 15080: Fix FTE in UIFTETextField which occured if baseline getter was called before width or height were set and autoSize =TextFieldAutoSize.NONE.

    Revision: 15080
    Revision: 15080
    Author:   [email protected]
    Date:     2010-03-26 14:47:47 -0700 (Fri, 26 Mar 2010)
    Log Message:
    Fix FTE in UIFTETextField which occured if baseline getter was called before width or height were set and autoSize=TextFieldAutoSize.NONE.  In this case, createTextLinesFromTextBlock returned without creating any text lines because there wasn't any width.  FTETextField.getLineMetrics assumes there is at least one line and throws a range error if there isn't.  In this case, set autoSize to TextFieldAutoSize.LEFT, measure the text, and then restore the autoSize value.
    QE notes:
    Doc notes: None
    Bugs: SDK-26016
    Reviewed By: Jason
    Tests run: checkintests
    Is noteworthy for integration: No
    Ticket Links:
        http://bugs.adobe.com/jira/browse/SDK-26016
    Modified Paths:
        flex/sdk/branches/4.x/frameworks/projects/spark/src/mx/core/UIFTETextField.as

  • Remove Flex DataGrid Heading Rollover Color

    Hi,
    How can i stop rollover color change in Flex 3 DataGrid heading ?
    Can i override the following mehtod if yes how can i do this ?
     drawHeaderIndicator(s, r.x, 0, visibleColumns[i].width, cachedHeaderHeight - 0.5, getStyle("rollOverColor"), r);
    Thanks,
    -Shrban

    To do what you want to do requires a fair amount of work as the rollover color is set as a style, you can change the color but it seems the rollover can't be disabled(not without a custom datagrid).
    A quick fix is to try and at least reduce the difference in the rollover color, this could be done as per below, which basically makes the rollover color the same as the lighter shade of the header gradient.
    <?xml version="1.0" encoding="utf-8"?>
    <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" minWidth="955" minHeight="600" creationComplete="appHandler(event)">
    <mx:Script>
    <![CDATA[
    import mx.controls.Label;
    import mx.events.FlexEvent;
    protected function appHandler(event:FlexEvent):void
    var colors:Array = dg.getStyle("headerColors");
    dg.setStyle("rollOverColor",colors[0]);
    ]]>
    </mx:Script>
    <mx:DataGrid id="dg" x="234" y="198" width="619" height="360">
    <mx:columns>
    <mx:DataGridColumn headerText="Column 1" dataField="col1" />
    </mx:columns>
    </mx:DataGrid>
    </mx:Application>

  • Add categories to DataGrid header

    Is there a simple way to add categories to the DataGrid header? Basically, instead of just a single row with headers, I want an additional row that sits above that row and describes sections of the grid (rather than individual columns). E.g., in html, I could do something like this:
      <table>
        <tr><th colspan="2">Name</th><th colspan="2">Data</th></tr>
        <tr><th>first</th><th>last</th><th>age</th><th>gender</th></tr>
        <tr><td>john</td><td>doe</td><td>26</td><td>male</td></tr>
      </table>
    Is there a reasonable way to do something like that in Flex? I've looked at Alex Harui's DataGrid footer, but after playing around with it a bit, it doesn't seem that it would be easily adapated.

    So I'm trying to generalize this to more than two subcolumns. I got the item renderer working fine, but when I include the modified SplitDataGridHeader as a custom header renderer, it fubars the whole grid (even the other columns). I assume something I'm doing is making the Player very unhappy, but I don't see any errors when debugging in FlexBuilder: the entire Grid just shows up as plain white, with no styles applied and no data at all (even for the columns using standard renderers). Any idea what could be causing issues like this?

  • Multiple rows in Datagrid header

    Hi,
    Can anybody help me in creating a datagrid header as shown in
    the below link.
    http://i12.tinypic.com/52lbtde.jpg
    Thanks in advance...

    Upgrade to Flex 3 beta 1 and use AdvancedDataGrid component
    or use the technique shared by Alex Harui:
    http://blogs.adobe.com/aharui/2007/03/thinking_about_item_renderers_1.html#comments

  • How to turn off DataGrid header rollover?

    Does anybody know how to turn off the background rollover
    color in a DataGrid header? I have seen how to set
    useRollOver=false to turn it off in the body of the DataGrid but so
    far I can't see how to turn this off in the header. Thanks.

    I found a way to fix this but it seems like a kludge. In the
    table's style:
    headerColors: #D4DBE1,#D4DBE1;
    useRollOver: false;
    rollOverColor: #D4DBE1;
    useRollOver:false works for the data rows, not the header.
    Then setting rollOverColor will be ignored by the data rows, but
    will turn off the rollover for the headers, as long as the color is
    the same as the header colors.

  • Bluetooth head set which is compatible with MAC OS X

    Hi, anybody knows any kind of bluetooth head set which is compatible with macbook for audio conference? Can you please share your knoledge, it will be very useful for me. Is it possible to do a wire free audio conference .
    Thanks in advance.

    I guess I haven't heard of a bluetooth headset that is not compatible.
    I searched for 'Bluetooth headset not compatible with Mac os x' and found this as one of the hits:
    http://forum.skype.com/index.php?showtopic=265081
    Seems there are quite a few comments on various models.

  • How to include a custom bkgd in the spark datagrid header

    I have a CustomDatagridSkin.mxml, which is based upon the default DataGrid.
    I'm looking at the code, and I'm a noob, trying to make heads or tails out of it. If I could just figure out how to change the header color I would be happy. But what I'd really like to know is how to apply a graphic to the background of the header.
    Is there some example on the net that I can follow, because I'm having a hell of a time finding something useful.
    The demo that Deepa had was awsome (corkboard and postit notes looking thing).
    How was that done?
    Thanks
    Kristin

    Hi,
    Do you want a custom background for the entire header bar? or for each individual header renderer? I would take a look at the DefaultGridHeaderRenderer class to see how we do headers. These header renderers are used by the GridColumnHeaderGroup to create the column headers. You can modify it to have your own custom background graphic. If you just want to tweak the color, you can apply the chromeColor style to the DataGrid.
    I can try to cook up an example for you when I have a bit of time, but not at the moment. Hope this points you in the right direction.
    -Kevin

  • Add sort images in DataGrid Header

    Hi,
    I have a datagrid, where in I have defined the 'headerRelease' event to sort the data-grid columns. The sorting that I have to use is not the default sorting. It has some other rules, which have been defined in the headerRelease event.
    <mx:DataGrid id="idGridWebAlerts" dataProvider="{ webAlertsPage }"  variableRowHeight="true"
            width="100%" headerRelease="headRelEvt(event)" selectable="false" />
    In the headerRelease method, I have called the preventDefault() method of the header Release event, which will disable the default sorting. Due to this method call, the sort order images, that appear by default on datagrid column header do not show up.
    One of the ways to add those images is to use HeaderRenderers, but that causes flickering of headers after the datagrid has loaded. Is there any other way we can get/add the sort order depiction images to data grid header?
    Please help.
    Anjali

    Hi,
    I tried the table sorter utility.but it is sorting only if there are text property.
    so it is sorting according to the text.
    then i tried the code
    Comparator comparator = new Comparator()
           public int compare(Object x1, Object x2)
              IResultNodeElement e1 = (IResultNodeElement ) x1;
              IResultNodeElement e2 = (IResultNodeElement ) x2;
              return e1.getDs().compareTo(e2.getDs());
         wdContext.nodeResultNode().sortElements(comparator);
    Then it is sorting in one order..is there any way to sort it in other order..
    Regards
    AD

  • DataGrid Header Problem

    Dear All,
    I have some problem with accessing DataGrid HeaderText, When one column is visable false.
    "Click on column content and the code will show col # and header name. Do the same After Hide Colun  is clicked"
    Please check the following code
    <?xml version="1.0" encoding="utf-8"?>
    <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
    <mx:Script>
        <![CDATA[
            import mx.controls.listClasses.BaseListData;
            import mx.controls.dataGridClasses.DataGridListData;
            import mx.controls.dataGridClasses.DataGridItemRenderer;
            import mx.events.ListEvent;
            import mx.controls.*;
            function grd_click(e:ListEvent):void{
                    var icol:int = e.columnIndex;
                    var column:DataGridColumn = DataGridColumn(grid1.columns[icol]);
                    var headerTxt:String = column.headerText;
                    Alert.show("Header text = " + headerTxt)
            function hideCol(index:int):void{
                  var c:DataGridColumn = DataGridColumn(grid1.columns[index]);
                  c.visible = false;  
            var items:Array = [
                {name:"vlad",lname:"collak"},
        ]]>
    </mx:Script>
        <!--<mx:DataGrid x="90" y="99" itemClick="test(event)" id="grid1" dataProvider="{items}">-->
        <mx:DataGrid x="90" y="99" itemClick="grd_click(event)" id="grid1" dataProvider="{items}">
            <mx:columns>
                <mx:DataGridColumn headerText="Column 1" dataField="name"/>
                <mx:DataGridColumn headerText="Column 2" dataField="lname"/>          
            </mx:columns>
        </mx:DataGrid>
        <mx:Button x="90" y="262" label="Hide Column" click="hideCol(0)"/>
        <mx:Label x="90" y="56" text="Click on column content and the code will show col # and header name. Do the same After Hide Colun  is clicked" width="642" height="35"/>
    </mx:Application>
    Regards,
    Sri

    I think the column still exists even if you set its visibility to false. You could try something like this
    <?xml version="1.0" encoding="utf-8"?>
    <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" xmlns:local="*">
        <mx:Script>
        <![CDATA[
            import mx.controls.listClasses.BaseListData;
            import mx.controls.dataGridClasses.DataGridListData;
            import mx.controls.dataGridClasses.DataGridItemRenderer;
            import mx.events.ListEvent;
            import mx.controls.*;
            private function grd_click(e:ListEvent):void{
                    var icol:int = e.columnIndex;
                    var column:DataGridColumn = DataGridColumn(grid1.columns[icol]);
                    var headerTxt:String = column.headerText;
                    Alert.show("Header text = " + headerTxt)
            private function hideCol(index:int):void{
              if(index == 0)
                  grid1.columns = [column1];
              else
                  grid1.columns = [column2];
            [Bindable]private var items:Array = [
                {name:"vlad",lname:"collak"},
        ]]>
    </mx:Script>
        <mx:DataGrid x="90" y="99" itemClick="grd_click(event)" id="grid1" dataProvider="{items}">
            <mx:columns>
                <mx:DataGridColumn id="column1" headerText="Column 1" dataField="name" />
                <mx:DataGridColumn id="column2" headerText="Column 2" dataField="lname"/>         
            </mx:columns>
        </mx:DataGrid>
        <mx:Button x="90" y="262" label="Hide Column" click="hideCol(0)"/>
        <mx:Label x="90" y="56" text="Click on column content and the code will show col # and header name. Do the same After Hide Colun  is clicked" width="642" height="35"/>
    </mx:Application>

  • DataGrid header functionality to manipulate column data

    I have been displaying information for individual series in a chart via a datagrid so that the user can edit it (change color, series style, etc.) And it works fine, but now I need to add in some functionality in the header of the series style column.  Basically the user needs to be able to "override" each entry to make all of the series types lines or area or plot or whatever he chooses in the header.  In my research on the net, it looks like I may have to use AdvancedDataGrid to do this.  Does anyone know how I would do this.
    Here's what I have so far.  I've left out most of the other columns for simplicity.
    <mx:DataGrid id="seriesTable" color="black" fontSize="9" rowHeight="30" editable="true" resizeEffect="slow" rollOverColor="#CCCCCC"
    selectionColor="#999999" dataProvider="{axis.seriesList}" width="100%"
    rowCount="{axis.seriesList.length > 2 ? axis.seriesList.length : 2}" >
      <mx:columns>
             <mx:DataGridColumn width="40" dataField="color" headerText="Color" id="colorColumn"
                        rendererIsEditor="true"  editorDataField="result" itemRenderer="renderer.ColorPickerRenderer"/>
             <mx:DataGridColumn dataField="plotType" width="220" id="plotColumn"
                       rendererIsEditor="true"  editorDataField="result" itemRenderer="renderer.TypeBoxRenderer"/>
          </mx:columns>
    </mx:DataGrid>
    (I could also include TypeBoxRender code but I don't think it's really needed to understand what is going on here.)

    I have been displaying information for individual series in a chart via a datagrid so that the user can edit it (change color, series style, etc.) And it works fine, but now I need to add in some functionality in the header of the series style column.  Basically the user needs to be able to "override" each entry to make all of the series types lines or area or plot or whatever he chooses in the header.  In my research on the net, it looks like I may have to use AdvancedDataGrid to do this.  Does anyone know how I would do this.
    Here's what I have so far.  I've left out most of the other columns for simplicity.
    <mx:DataGrid id="seriesTable" color="black" fontSize="9" rowHeight="30" editable="true" resizeEffect="slow" rollOverColor="#CCCCCC"
    selectionColor="#999999" dataProvider="{axis.seriesList}" width="100%"
    rowCount="{axis.seriesList.length > 2 ? axis.seriesList.length : 2}" >
      <mx:columns>
             <mx:DataGridColumn width="40" dataField="color" headerText="Color" id="colorColumn"
                        rendererIsEditor="true"  editorDataField="result" itemRenderer="renderer.ColorPickerRenderer"/>
             <mx:DataGridColumn dataField="plotType" width="220" id="plotColumn"
                       rendererIsEditor="true"  editorDataField="result" itemRenderer="renderer.TypeBoxRenderer"/>
          </mx:columns>
    </mx:DataGrid>
    (I could also include TypeBoxRender code but I don't think it's really needed to understand what is going on here.)

  • Questions about Spark DataGrid (Header Font Styles, Header Gradient)

    Just starting out in 4.5 SDK, and just a tad confused on the Spark DataGrid.
    1) Trying to set the font style for just the header, but don't see those properties in the designer....as they appear to apply to every part of the DataGrid.
    2) Want to set a linear gradient for the header utilizing two specific colors, alphas and ratios.  Not sure where to set them now.
    I think that is it for now.  From what I have done with it so far, I love it....just obviously not as much user documentation as the MX DataGrid.
    Thanks in advance!
    Bill

    You can do per column header renderers by setting the headerRenderer property on the column. But if you want to swap out all the headers, the header renderer has to be specified in the skin. One neat trick you can do is subclass the DataGridSkin and replace the "headerRenderer" declaration. This also works with the other skin parts.
    <?xml version="1.0" encoding="utf-8"?>
    <skins:DataGridSkin xmlns:fx="http://ns.adobe.com/mxml/2009"
                    xmlns:s="library://ns.adobe.com/flex/spark"
                    xmlns:mx="library://ns.adobe.com/flex/mx"
                    xmlns:skins="spark.skins.spark.*">
        <fx:Declarations>
            <!-- See DataGridSkin for other possible parts -->    
            <fx:Component id="headerRenderer">
                <s:CustomGridHeaderRenderer />
            </fx:Component>
        </fx:Declarations>
    </skins:DataGridSkin>
    -Kevin

  • Skinning selected DataGrid header in Flex 4

    Hi,
    What I'm trying to do seems trivial, but after hours of searching for historical clues I have still not achieved it. I simply want to reskin only the selected header. There seems to be multiple approaches:
    1) define a custom headerRenderer - but this ends up with the sort indicator cobbled on top of your custom drawn area
    2) rework the header background skin to clip/draw the selected column differently - but this requires clipping to the selected column, and figuring out the dimensions to clip to
    Am I missing an obvious and easier solution?  Any examples out there?
    Thanks!

    Thanks again Alex.
    I managed to achieve something satisfactory with the following custom HeaderRenderer. The negative padding on the right side allows the gradient to extend underneath the sort skin to fill the entire column. This seemed easier (if not cleaner) than also skinning the sort arrow skin in the same way.
    I also had to extend DataGridHeader and override drawHeaderIndicator (for the rollover of the column header) and drawSelectionIndicator (for the transitionary state of clicking on the column header before the sort takes effect).
    Still a work in progress, but hopefully this will save the next Googler some time in achieving any of these goals.  And of course I welcome any refinements or any admonishments that I'm doing something really stupid.
    <?xml version="1.0" encoding="utf-8"?>
    <s:Group> 
    implements="mx.controls.listClasses.IListItemRenderer"xmlns:fx="
    http://ns.adobe.com/mxml/2009" xmlns:s="
    library://ns.adobe.com/flex/spark" xmlns:mx="
    library://ns.adobe.com/flex/halo"width="
    100%" height="100%">
    <fx:Script>
    <![CDATA[
    import com.company.player.model.Constants; 
    import mx.collections.ArrayCollection; 
    import mx.controls.DataGrid; 
    import mx.controls.dataGridClasses.DataGridColumn; 
    import mx.controls.listClasses.IListItemRenderer; 
    import mx.controls.listClasses.ListBase; 
    private var _data:Object; 
    static private const LABEL_BUFFER:int = 4; 
    static private const SORT_INDICATOR_WIDTH:int = 14; 
    override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void
    var owner:DataGrid = owner as DataGrid; 
    var col:DataGridColumn = data as DataGridColumn; 
    var bSorted:Boolean = false; 
    var ac:ArrayCollection = owner.dataProvider as ArrayCollection; 
    if (ac && ac.sort){
    // there's a sort in place - is it on this column?
    var sortFieldName:String = ac.sort.fields[0].name; 
    bSorted = (sortFieldName == col.dataField);
    gradientOverlay.alpha = bSorted ? 1 : 0;
    gradientOverlay.visible = bSorted;
    lbl.width = col.width - LABEL_BUFFER - (bSorted ? SORT_INDICATOR_WIDTH : 0);
    lbl.text = col.headerText;
    lbl.setStyle(
    "color", bSorted ? "#343434" : "#767676"); 
    super.updateDisplayList(unscaledWidth, unscaledHeight);}
    ]]>
    </fx:Script>
    <s:HGroup id="gradientOverlay" width="100%" height="100%" paddingTop="-2" paddingRight="{-SORT_INDICATOR_WIDTH}" >
    <s:Rect width="100%" height="100%" >
    <s:fill>
    <s:LinearGradient rotation="90">
    <s:GradientEntry color="{Constants.SELECTION_GRADIENT1}" alpha="1"/>
    <s:GradientEntry color="{Constants.SELECTION_GRADIENT2}" alpha="1"/>
    </s:LinearGradient>  
    </s:fill>
    </s:Rect>  
    </s:HGroup>
    <s:HGroup width="100%" height="100%" verticalAlign="middle" paddingLeft="{LABEL_BUFFER}" >
    <s:Label id="lbl" maxDisplayedLines="1" showTruncationTip="true" />  
    </s:HGroup>
    </s:Group>

  • DataGrid Header shadow Problem.

    Hello,
    Here is my problem: I have this DataGrid with all kind of
    custom styles, backgroud colors, cell colors, fonts. etc. I can't
    figure out how to get rid of the black line right under the header.
    It's like a 1px stroke solid black........Am I on Crack, is this
    even possible? I know you can hide the header, but I want to keep
    it for sorting purposes. Thanks for any help.

    I think the column still exists even if you set its visibility to false. You could try something like this
    <?xml version="1.0" encoding="utf-8"?>
    <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" xmlns:local="*">
        <mx:Script>
        <![CDATA[
            import mx.controls.listClasses.BaseListData;
            import mx.controls.dataGridClasses.DataGridListData;
            import mx.controls.dataGridClasses.DataGridItemRenderer;
            import mx.events.ListEvent;
            import mx.controls.*;
            private function grd_click(e:ListEvent):void{
                    var icol:int = e.columnIndex;
                    var column:DataGridColumn = DataGridColumn(grid1.columns[icol]);
                    var headerTxt:String = column.headerText;
                    Alert.show("Header text = " + headerTxt)
            private function hideCol(index:int):void{
              if(index == 0)
                  grid1.columns = [column1];
              else
                  grid1.columns = [column2];
            [Bindable]private var items:Array = [
                {name:"vlad",lname:"collak"},
        ]]>
    </mx:Script>
        <mx:DataGrid x="90" y="99" itemClick="grd_click(event)" id="grid1" dataProvider="{items}">
            <mx:columns>
                <mx:DataGridColumn id="column1" headerText="Column 1" dataField="name" />
                <mx:DataGridColumn id="column2" headerText="Column 2" dataField="lname"/>         
            </mx:columns>
        </mx:DataGrid>
        <mx:Button x="90" y="262" label="Hide Column" click="hideCol(0)"/>
        <mx:Label x="90" y="56" text="Click on column content and the code will show col # and header name. Do the same After Hide Colun  is clicked" width="642" height="35"/>
    </mx:Application>

  • [svn:fx-3.x] 10420: Several DataGrid fixes.

    Revision: 10420
    Author:   [email protected]
    Date:     2009-09-18 15:54:58 -0700 (Fri, 18 Sep 2009)
    Log Message:
    Several DataGrid fixes.  We remove checking for new edit sessions during focusIn handling and start the edit session on mouse activity, fix the calculation of maxHorizontalScrollPosition in a corner case, measure fonts in the header correctly, end the edit session on a dataprovider reset, handle having no scrollable columns.
    Also update TextInput to more aggressively reset selection when used as a renderer
    QE Notes: None
    Doc Notes: None
    Bugs: SDK-22896, SDK-22575, SDK-22548, SDK-22479, SDK-15280
    Reviewer: Corey
    API Change: No
    Is noteworthy for integration: No
    tests: checkintests mustella/browser/DataGrid
    Ticket Links:
        http://bugs.adobe.com/jira/browse/SDK-22896
        http://bugs.adobe.com/jira/browse/SDK-22575
        http://bugs.adobe.com/jira/browse/SDK-22548
        http://bugs.adobe.com/jira/browse/SDK-22479
        http://bugs.adobe.com/jira/browse/SDK-15280
    Modified Paths:
        flex/sdk/branches/3.x/frameworks/projects/framework/src/mx/controls/DataGrid.as
        flex/sdk/branches/3.x/frameworks/projects/framework/src/mx/controls/TextInput.as
        flex/sdk/branches/3.x/frameworks/projects/framework/src/mx/controls/dataGridClasses/DataG ridHeader.as

    Can't solve your immediate problem, but thought this might be of interest.
    I created a tutorial on converting the Adobe Flex 3 example Dashboard application to Flex 4.
    The tutorial is here:
    http://stardustsystems.com/learning/flex4/tutorials/portDashboardToFlex4/index.html
    There are links to the tutorial PDF, the converted applicaton, and the source code.
    Hope this helps someone.
    http://www.stardustsystems.com
    http://www.stardustsystems.com/blog

Maybe you are looking for

  • How to get rid of  Reading List and why my add page going in there?

    My + on the toolbar is now adding pages to the reading list instead of the bookmark.. How do i change that/get rid off reading list? I want stuff to go to bookmark. I tried to change the setting in  in Safari>Preferences>Bookmark but I dont have a bo

  • Billing before PGI`

    Hi we have to create billing before PGI. I had change the copy control to 11 in copy requirement. But when i try to create billing based on sales order or delivery note, message is displayed " the document is not relevant for billing". Pls advice. th

  • TCP/IP connections in SM59

    In SM59 if you select TCP-IP connections, then there is an option of PROGRAM-ID if you click the REGISTER SERVER Radio button. 1)How can I find this <b>program-ID</b> for a non SAP system. Also what is Gateway Host and Gateway Service? 2)How can we f

  • Ability to actually download and print in pdf after purchase

    I purchased yesterday the ability to turn word/excel documents to pdf.  I can turn the documents no problem but then they are refusing to download.  Also when I try to put the desktop print icon on it will not let me into the screen to log into the s

  • Photoshop CS3 crashing and installation getting 'stuck'

    Last week Photoshop CS3 started crashing when trying to select a new file to open. This didn't seem related to any particulr file and appeared to be random. Error message was "an unrecoverable problem has occurred, Photoshop will now quit" Actully it