Is there a way to highlight the row of a newly added row to a collection?
I have created a copy of my report template and altered Column Template 1 to be:
<td bgColor =FF0000 #ALIGNMENT# headers="#COLUMN_HEADER_NAME#" class="t2data"><font color="#FFCCFF"</FONT> #COLUMN_VALUE#</td>
the column template 1 Condition is set to: Used Based on PLSQL
and the condition (and this is where I am not clear) is: #C002# = 1
I have a query based on the following collection. When a new row is added, I would like it to be hightlighted based on the above. Is there a way to do this? thanks.
Karen
SELECT
apex_item.checkbox (1,seq_id, 'onclick="highlight_row(this,'
|| seq_id
||')"', NULL, ':', 'f01_'
|| LPAD (seq_id, 4, '0') ) delete_checkbox,
apex_item.hidden(2,seq_id) seq_id,
apex_item.hidden(3,seq_id),
s.common_name SPECIES_ITIS,
g.grade_desc GRADE,
m.market_desc MARKET_CATEGORY,
c007 unit,
apex_item.text(8,c008,5) fav_order,
apex_item.select_list_from_query(9,c009,'select disposition_desc, pd.disposition_code from partner_dispositions pd, dispositions d where pd.partner_id = :G_ISSUING_AGENCY and pd.disposition_code = d.disposition_code','style="width:175px;background-color:#FBEC5D;" onChange="saveSpeciesDisposition(#ROWNUM#);"','YES','0','- Select Disposition -','f09_#ROWNUM#') disp
from apex_collections,
species s,
grade_categories g,
market_categories m
where collection_name = 'C_DEALER_SPECIES_FAV' and
c004 = s.species_itis and
c005 = g.grade_code and
c006 = m.market_code
order by c008, s.common_name
It gets a bit more complicated, in that a row is added by selecting (species_itis) from a tree.
Hi Karen,
Firstly, try changing:
<td bgColor =FF0000 #ALIGNMENT# headers="#COLUMN_HEADER_NAME#" class="t2data"><font color="#FFCCFF"</FONT> #COLUMN_VALUE#</td>to:
<td #ALIGNMENT# headers="#COLUMN_HEADER_NAME#" class="t2data" style="background-color:red"><font color="#FFCCFF"</FONT> #COLUMN_VALUE#</td>Also, change the condition to:
'#C002#' = '1'
and make sure that you have an unconditional Template 2
Andy
Similar Messages
-
Easy way to highlight the row you are editing
Hi,
How can I easily highlight the row in a report with an edit button when I click this button. If I click it I go to another page but when I come back( After saving modifications) I want the row I just edited highlighted
Thank you for the help
ErwinHello Erwin,
First, you need to add an ID to every row in your report, so you’ll be able to manipulate it on the DOM level. Duplicate your report template, and edit the Before Each Row field to look similar to the following:
<tr #HIGHLIGHT_ROW# id="#ROWNUM#">I’m using a hidden item on the report page, to hold the rownum of the report line I’m branching to edit. I’m setting this item in the link column (or in the f?p URL) to be #ROWNUM#.
I’m using an onload event to fire the following JS function:
function colorLinkRow(pItem, pColor) {
var elm = $x(pItem);
if (elm.value > 0) {
$x(elm.value).style.backgroundColor = pColor;
}The pItem parameter is the hidden item name, and the pColor is the background color I want to use.
This code assuming only one report region per page. Otherwise, you need to take different approach to setting unique IDs to your reports lines.
Regards,
Arie. -
Is there a way to determine which rows are inserted in JDT1 table by the system automatically?
Hi,
Is there a way to determine which rows are inserted in JDT1 table by the system automatically? Example, many GLs which are mapped in GL Account Determination, like Foreign Exchange Gain / Loss, Rounding Account, etc. are inserted by the system automatically in the Journal Entry on various scenarios, like during Incoming Payment, etc.
Which SQL query can give me those rows? Basically the WHERE condition should be based on which column or multiple columns in JDT1 table?
Thanks.Hi Rajesh,
I'm not entirely sure but I think the TransId is the same in the header that belongs to the transaction.
OINV.TransId = JDT1.TransId
Best regards,
Pedro Magueija -
Is there any way to link the individual rows of data to the corresponding bars in a bar chart so that each legend title appears simultaneously with its corresponding bar when creating a build? I can do it in a pie chart but can't in a bar chart.
You used the data. Verizon can not see what it was sued for. However your phone can see whats apps used the data. go to settings-data usage- there will be a place that says data usage cycle. line the dates up with your cycle. then there will be a bar graph below that extend bother white bars one all the way to the left and one all the way to the right. after those are extended below that will be a list of apps, there should be one that used over 2 gb and that will show you what app used that data in her purse
-
After I highlight text in my document is there a way to undo the highlight?
After I highlight text in my document is there a way to undo the highlight?
Nevermind -
I discovered the answer.
Hold the highlighted area and the option to clear pops.
I would have liked to see this info in the get started document.
great app! -
Is there any way to convert the selected rows to text in javascript??
Hi All,
I have place some word file to indesign cs 5.5 it is almost in one table, i need to separate the text from the real tables, Is there any way to convert the selected rows to text in javascript??
If there is no way to make that, any one can help me to make a script to cut the selected rows and place it in privies pointer of the table to make it independent table and after that convert it to text ?This insert the rows contents after the table instead of being before:
for (var r = app.selection.length - 1; r >= 0; r--) {
for (var t = app.selection[r].rows.length - 1; t >= 0; t--) {
for (var u = app.selection[r].rows[t].cells.length - 1; u >= 0; u--) {
for (var c = app.selection[r].rows[t].cells[u].paragraphs.length - 1; c >= 0; c--) {
app.selection[r].rows[t].cells[u].paragraphs[0].move (LocationOptions.AFTER, app.selection[r].rows[t].parent.parent.storyOffset.parent.insertionPoints.nextItem(app.se lection[r].rows[t].parent.parent.storyOffset));
if (c != 0)
app.selection[r].rows[t].parent.parent.storyOffset.parent.insertionPoints.nextItem(app.se lection[r].rows[t].parent.parent.storyOffset).contents += "\r";
if (u != 0) {
app.selection[r].rows[t].parent.parent.storyOffset.parent.insertionPoints.nextItem(app.se lection[r].rows[t].parent.parent.storyOffset).contents += "\t";
else {
app.selection[r].rows[t].parent.parent.storyOffset.parent.insertionPoints.nextItem(app.se lection[r].rows[t].parent.parent.storyOffset).contents += "\r";
for (var r = 0; r < app.selection.length; r++) {
for (var t = app.selection[r].rows.length - 1; t >= 0; t--) {
app.selection[r].rows[t].remove (); -
I created a birthday calendar to use in iphoto for calendar. When a new calendar project is started each year, I click on it in. Some how the birthday did not populate the photo calendar this year. The photo calendar is almost complete. Is there a way to add the birthday iCal calendar into the calendar project? I would prefer not to start over.
Hi,
If you first select the calendar on the left, so that its background is highlighted blue/grey, when you make a new events they should be added to that calendar.
Best wishes
John M -
Is there a way to change the LUt extension form .CUBE to .cube. on export with this script in photoshop For MAC:
Chris Cox wrote:
The file extensions are written by the export plugin. (which incidentally has a comment that two studios wanted all caps extensions, but I failed to write down which ones in the comments)
To change the filenames, you'd want to add something at the end of doExportLUTs() that uses the supplied path and substitutes the desired extensions, then renames the file.
Thank you
// Export Color Lookup Tables automation in JavaScript
// IN_PROGRESS - why can't ColorSync Utility open any profile with a grid of 160 or larger?
// 150 works, 160 fails -- sent samples in email to Apple on Nov 8, 2013; they are investigating
// DEFERRED - right to left filenames (Arabic) come out wrong because of appending "RGB" and file extensions
// This seems to be a bug in JavaScript's handing of strings, not sure we can solve it easily.
// It might possibly be handled by checking bidi markers in UTF8 stream and adding custom handling for appending text/extensions.
@@@BUILDINFO@@@ ExportColorLookupTables.jsx 1.0.0.0
// BEGIN__HARVEST_EXCEPTION_ZSTRING
<javascriptresource>
<name>$$$/JavaScripts/ExportColorLookupTables/Menu=Color Lookup Tables...</name>
<menu>export</menu>
<enableinfo>true</enableinfo>
<eventid>9AA9D7D6-C209-494A-CC01-4E7D926DA642</eventid>
</javascriptresource>
// END__HARVEST_EXCEPTION_ZSTRING
#target photoshop
const appUIState = app.displayDialogs;
app.displayDialogs = DialogModes.NO; // suppress all app dialogs
app.bringToFront(); // make Photoshop the frontmost app, just in case
// on localized builds we pull the $$$/Strings from a .dat file
$.localize = true;
// from Terminology.jsx
const classApplication = app.charIDToTypeID('capp');
const classProperty = app.charIDToTypeID('Prpr');
const enumTarget = app.charIDToTypeID('Trgt');
const eventGet = app.charIDToTypeID('getd');
const eventSet = app.charIDToTypeID('setd');
const kcolorSettingsStr = app.stringIDToTypeID("colorSettings");
const kDither = app.charIDToTypeID('Dthr');
const keyTo = app.charIDToTypeID('T ');
const typeNULL = app.charIDToTypeID('null');
const typeOrdinal = app.charIDToTypeID('Ordn');
const kFloatWindowStr = app.stringIDToTypeID("floatWindow");
const typePurgeItem = app.charIDToTypeID('PrgI');
const enumClipboard = app.charIDToTypeID('Clpb');
const eventPurge = app.charIDToTypeID('Prge');
const keyExportLUT = app.charIDToTypeID( "lut " );
const keyFilePath = app.charIDToTypeID( 'fpth' );
const keyDescription = app.charIDToTypeID( 'dscr' );
const keyCopyright = app.charIDToTypeID( 'Cpyr' );
const keyDataPoints = app.charIDToTypeID( 'gPts' );
const keyWriteICC = app.charIDToTypeID( 'wICC' );
const keyWrite3DL = app.charIDToTypeID( 'w3DL' );
const keyWriteCUBE = app.charIDToTypeID( 'wCUB' );
const keyWriteCSP = app.charIDToTypeID( 'wCSP' );
const kScriptOptionsKey = "9AA9D7D6-C209-494A-CC01-4E7D926DA642"; // same as eventID above
const sGridMin = 7; // these must match the slider range defined in the dialog layout
const sGridMax = 256;
const sGridDefault = 32;
// our baseline UI configuration info
var gSaveFilePath = ""; // overwritten by document path
var gDescription = ""; // overwritten by document name
var gCopyright = ""; // "Adobe Systems Inc., All Rights Reserved";
var gGridPoints = sGridDefault;
var gDoSaveICCProfile = true;
var gDoSave3DL = true;
var gDoSaveCUBE = true;
var gDoSaveCSP = true;
gScriptResult = undefined;
// start doing the work...
main();
app.displayDialogs = appUIState; // restore original dialog state
gScriptResult; // must be the last thing - this is returned as the result of the script
function readOptionsFromDescriptor( d )
if (!d)
return;
if (d.hasKey(keyFilePath))
gSaveFilePath = d.getString( keyFilePath ); // will be overridden by UI
if (d.hasKey(keyDescription))
gDescription = d.getString( keyDescription ); // will be overridden always
if (d.hasKey(keyCopyright))
gCopyright = d.getString( keyCopyright );
if (d.hasKey(keyDataPoints))
var temp = d.getInteger( keyDataPoints );
if (temp >= sGridMin && temp <= sGridMax)
gGridPoints = temp;
if (d.hasKey(keyWriteICC))
gDoSaveICCProfile = d.getBoolean( keyWriteICC );
if (d.hasKey(keyWrite3DL))
gDoSave3DL = d.getBoolean( keyWrite3DL );
if (d.hasKey(keyWriteCUBE))
gDoSaveCUBE = d.getBoolean( keyWriteCUBE );
if (d.hasKey(keyWriteCSP))
gDoSaveCSP = d.getBoolean( keyWriteCSP );
function createDescriptorFromOptions()
var desc = new ActionDescriptor();
desc.putString( keyFilePath, gSaveFilePath ); // will be overridden by UI
desc.putString( keyDescription, gDescription ); // will always be overridden by document name
desc.putString( keyCopyright, gCopyright );
desc.putInteger( keyDataPoints, gGridPoints );
desc.putBoolean( keyWriteICC, gDoSaveICCProfile );
desc.putBoolean( keyWrite3DL, gDoSave3DL );
desc.putBoolean( keyWriteCUBE, gDoSaveCUBE );
desc.putBoolean( keyWriteCSP, gDoSaveCSP );
return desc;
function doExportUI()
// DEFERRED - it might be nice to be able to run without UI
// Right now we can't, but someone could modify the script if they so desire
const sDescription = localize("$$$/AdobeScript/Export3DLUT/Description=Description:");
const sCopyright = localize("$$$/AdobeScript/Export3DLUT/Copyright=Copyright:");
const sQuality = localize("$$$/AdobeScript/Export3DLUT/Quality=Quality");
const sGridPoints = localize("$$$/AdobeScript/Export3DLUT/GridPoints=Grid Points:");
const sFormatsToSave = localize("$$$/AdobeScript/Export3DLUT/Formats=Formats");
const sOpenButton = localize("$$$/JavaScripts/psx/OK=OK");
const sCancelButton = localize("$$$/JavaScripts/psx/Cancel=Cancel");
const strTextInvalidType = localize("$$$/JavaScripts/Export3DLUT/InvalidType=Invalid numeric value. Default value inserted.");
const strTextInvalidNum = localize("$$$/JavaScripts/Export3DLUT/InvalidNum=A number between 7 and 256 is required. Closest value inserted.");
const strNoExportsSelected = localize("$$$/JavaScripts/Export3DLUT/NoExportTypesSelected=No export types were selected.");
const strExportPrompt = localize("$$$/JavaScripts/Export3DLUT/ExportColorLookup=Export Color Lookup");
const strUntitledLUT = localize("$$$/JavaScripts/Export3DLUT/UntitledLUTFilename=untitled.lut");
const sSaveICC = localize("$$$/AdobeScript/Export3DLUT/ICCProfile=ICC Profile");
// these are not localized, since they refer to file format extensions
const sSave3DL = "3DL";
const sSaveCUBE = "CUBE";
const sSaveCSP = "CSP";
// strings similar to JPEG quality
const sPoor = localize("$$$/AdobeScript/Export3DLUT/Poor=Poor");
const sLow = localize("$$$/AdobeScript/Export3DLUT/Low=Low");
const sMedium = localize("$$$/AdobeScript/Export3DLUT/Medium=Medium");
const sHigh = localize("$$$/AdobeScript/Export3DLUT/High=High");
const sMaximum = localize("$$$/AdobeScript/Export3DLUT/Maximum=Maximum");
const ui = // dialog resource object
"dialog { \
orientation: 'row', \
gp: Group { \
orientation: 'column', alignment: 'fill', alignChildren: 'fill', \
description: Group { \
orientation: 'row', alignment: 'fill', alignChildren: 'fill', \
st: StaticText { text:'Description:' }, \
et: EditText { characters: 30, properties:{multiline:false}, text:'<your description here>' } \
copyright: Group { \
orientation: 'row', alignment: 'fill', alignChildren: 'fill', \
st: StaticText { text:'Copyright:' }, \
et: EditText { characters: 30, properties:{multiline:false}, text:'<your copyright here>' } \
qual: Panel { \
text: 'Quality', \
orientation: 'column', alignment: 'fill', alignChildren: 'fill', \
g2: Group { \
st: StaticText { text:'Grid Points:' }, \
et: EditText { characters:4, justify:'right' } \
drp: DropDownList {alignment:'right'} \
sl: Slider { minvalue:7, maxvalue:256, value: 32 }, \
options: Panel { \
text: 'Formats', \
orientation: 'column', alignment: 'fill', alignChildren: 'left', \
ck3DL: Checkbox { text:'3DL', value:true }, \
ckCUBE: Checkbox { text:'CUBE', value:true } \
ckCSP: Checkbox { text:'CSP', value:true } \
ckICC: Checkbox { text:'ICC Profile', value:true } \
gButtons: Group { \
orientation: 'column', alignment: 'top', alignChildren: 'fill', \
okBtn: Button { text:'Ok', properties:{name:'ok'} }, \
cancelBtn: Button { text:'Cancel', properties:{name:'cancel'} } \
const titleStr = localize("$$$/AdobeScript/Export3DLUT/DialogTitle/ExportColorLookupTables=Export Color Lookup Tables");
var win = new Window (ui, titleStr ); // new window object with UI resource
// THEORETICALLY match our dialog background color to the host application
win.graphics.backgroundColor = win.graphics.newBrush (win.graphics.BrushType.THEME_COLOR, "appDialogBackground");
// poor, low, medium, high, max
var MenuQualityToGridPoints = [ 8, 16, 32, 64, 256 ];
function GridPointsToQualityMenuIndex( num )
var menu = MenuQualityToGridPoints;
var menuItems = menu.length;
if (num <= menu[0])
return 0;
if (num >= menu[ menuItems-1 ])
return (menuItems-1);
for (var i = 0; i < (menuItems-1); ++i)
if ((num >= menu[i]) && (num < menu[i+1]))
return i;
return 0; // just in case of a logic failure
// insert our localized strings
var drop = win.gp.qual.g2.drp; // for easier typing
drop.add('item', sPoor ); // 0
drop.add('item', sLow ); // 1
drop.add('item', sMedium ); // 2
drop.add('item', sHigh ); // 3
drop.add('item', sMaximum ); // 4
drop.selection = drop.items[2]; // Medium
win.gp.description.st.text = sDescription;
win.gp.copyright.st.text = sCopyright;
win.gp.qual.text = sQuality;
win.gp.qual.g2.st.text = sGridPoints;
win.gp.options.text = sFormatsToSave;
win.gp.options.ck3DL.text = sSave3DL;
win.gp.options.ckCUBE.text = sSaveCUBE;
win.gp.options.ckCSP.text = sSaveCSP;
win.gp.options.ckICC.text = sSaveICC;
win.gButtons.okBtn.text = sOpenButton;
win.gButtons.cancelBtn.text = sCancelButton;
// set starting parameters
win.gp.description.et.text = gDescription;
win.gp.copyright.et.text = gCopyright;
win.gp.options.ckICC.value = gDoSaveICCProfile;
win.gp.options.ck3DL.value = gDoSave3DL;
win.gp.options.ckCUBE.value = gDoSaveCUBE;
win.gp.options.ckCSP.value = gDoSaveCSP;
// global flag/hack to keep the UI pretty
var gGlobalPreventChanges = false;
with (win.gp.qual)
sl.value = gGridPoints;
g2.et.text = gGridPoints;
drop.selection = drop.items[ GridPointsToQualityMenuIndex(gGridPoints) ];
// global flag is ugly, but recursive change calls are uglier
g2.et.onChange = function () { if (gGlobalPreventChanges) { return; }
gGlobalPreventChanges = true;
var val = Number(this.text);
this.parent.parent.sl.value = val;
drop.selection = drop.items[ GridPointsToQualityMenuIndex(val) ];
gGlobalPreventChanges = false; };
sl.onChanging = function () { if (gGlobalPreventChanges) { return; }
gGlobalPreventChanges = true;
var val = Math.floor(this.value);
this.parent.g2.et.text = val;
drop.selection = drop.items[ GridPointsToQualityMenuIndex(val) ];
gGlobalPreventChanges = false; };
// DEFERRED - we should also set the value if the same menu item is selected again (reset)
// but the JSX toolkit doesn't support that
drop.onChange = function()
if (gGlobalPreventChanges) { return; }
gGlobalPreventChanges = true;
var theSelection = this.selection.text;
if (theSelection != null) { // only change if selection made
var theSelectionIndex = this.selection.index;
var newGridPoints = MenuQualityToGridPoints[ theSelectionIndex ];
win.gp.qual.g2.et.text = newGridPoints;
win.gp.qual.sl.value = newGridPoints;
gGlobalPreventChanges = false;
win.onShow = function ()
this.qual.sl.size.width = 128;
this.layout.layout(true);
win.gButtons.cancelBtn.onClick = function () { this.window.close(2); };
// validate inputs when the user hits OK
var gInAlert = false;
win.gButtons.okBtn.onClick = function ()
if (gInAlert == true)
gInAlert = false;
return;
var gridText = win.gp.qual.g2.et.text;
var w = Number(gridText);
var inputErr = false;
if ( isNaN( w ) )
if ( DialogModes.NO != app.playbackDisplayDialogs )
gInAlert = true;
alert( strTextInvalidType );
gInAlert = false;
win.gp.qual.g2.et.text = sGridDefault;
win.gp.qual.sl.value = sGridDefault;
drop.selection = drop.items[ GridPointsToQualityMenuIndex(sGridDefault) ];
return false;
if ( (w < sGridMin) || (w > sGridMax) )
if ( DialogModes.NO != app.playbackDisplayDialogs )
gInAlert = true;
alert( strTextInvalidNum );
gInAlert = false;
if ( w < sGridMin)
inputErr = true;
drop.selection = drop.items[ GridPointsToQualityMenuIndex(sGridMin) ];
win.gp.qual.g2.et.text = sGridMin;
win.gp.qual.sl.value = sGridMin;
return false;
if ( w > sGridMax)
inputErr = true;
drop.selection = drop.items[ GridPointsToQualityMenuIndex(sGridMax) ];
win.gp.qual.g2.et.text = sGridMax;
win.gp.qual.sl.value = sGridMax;
return false;
if (inputErr == false)
win.close(true);
return;
win.center(); // move to center the dialog
var ret = win.show(); // dialog display
if (2 == ret)
return false; // user cancelled
// user hit OK, copy values from dialog
gDescription = win.gp.description.et.text;
gCopyright = win.gp.copyright.et.text;
gGridPoints = win.gp.qual.sl.value;
gDoSave3DL = win.gp.options.ck3DL.value;
gDoSaveCUBE = win.gp.options.ckCUBE.value;
gDoSaveCSP = win.gp.options.ckCSP.value;
gDoSaveICCProfile = win.gp.options.ckICC.value;
// if no files are going to be saved, then we have zero work to do
if ((false == gDoSaveICCProfile) && (false == gDoSave3DL) &&
(false == gDoSaveCUBE) && (false == gDoSaveCSP) )
// tell the user that no formats were selected
alert( strNoExportsSelected );
gScriptResult = 'cancel'; // quit, returning 'cancel' (dont localize) makes the actions palette not record our script
return false;
// prompt user for directory and output base filename
// default to directory and filename of current document
var currentDocumentPath
try
// if the file has no path (not saved), then this throws
var documentPath = app.activeDocument.fullName.fsName; // Get the OS friendly file path and name
documentPath = documentPath.replace(/\....$/,''); // remove extension, if there is one
documentPath = documentPath + ".lut"; // add dummy extension
currentDocumentPath = File ( documentPath );
catch (e)
// if there was no document path, default to user's home directory
var defaultName = "~/" + strUntitledLUT;
currentDocumentPath = File(defaultName);
var fname = currentDocumentPath.saveDlg(strExportPrompt);
if (fname == null)
return false;
gSaveFilePath = fname.fsName;
return true;
function doExportLUTs( path )
const keyUsing = charIDToTypeID( 'Usng' );
const eventExport = charIDToTypeID( 'Expr' );
var desc = new ActionDescriptor();
var desc2 = new ActionDescriptor();
desc2.putString( keyFilePath, path );
desc2.putString( keyDescription, gDescription );
desc2.putInteger( keyDataPoints, gGridPoints );
// assemble the full copyright string, if needed
var copyrightAssembled = gCopyright;
if (gCopyright != "")
var theDate = new Date();
// the year is from 1900 ????
var theYear = (theDate.getYear() + 1900).toString();
// Localization team says to just use the year
var dateString = theYear;
copyrightAssembled = localize("$$$/JavaScripts/Export3DLUT/Copyright=(C) Copyright ") + dateString + " " + gCopyright;
desc2.putString( keyCopyright, copyrightAssembled );
// select output format
desc2.putBoolean( keyWriteICC, gDoSaveICCProfile );
desc2.putBoolean( keyWrite3DL, gDoSave3DL );
desc2.putBoolean( keyWriteCUBE, gDoSaveCUBE );
desc2.putBoolean( keyWriteCSP, gDoSaveCSP );
desc.putObject( keyUsing, keyExportLUT, desc2 );
try
var resultDesc = executeAction( eventExport, desc, DialogModes.NO );
catch (e)
if ( e.number != 8007 ) { // don't report error on user cancel
var str = localize("$$$/JavaScripts/Export3DLUT/ExportLUTFailed=Unable to run the Export Color Lookup plugin because ");
alert( str + e + " : " + e.line );
gScriptResult = 'cancel'; // quit, returning 'cancel' (dont localize) makes the actions palette not record our script
return false;
return true;
function doRenderGrid( points )
// call the grid rendering plugin to do the work
const keyRenderGrid = charIDToTypeID( "3grd" );
const keyDataPoints2 = charIDToTypeID( 'grdP' );
var args = new ActionDescriptor();
args.putInteger( keyDataPoints2, points);
try
var result = executeAction( keyRenderGrid, args, DialogModes.NO );
catch (e)
if ( e.number != 8007 ) { // don't report error on user cancel
var str = localize("$$$/JavaScripts/Export3DLUT/RenderGridFailed=Unable to render color grid because ");
alert( str + e + " : " + e.line );
gScriptResult = 'cancel'; // quit, returning 'cancel' (dont localize) makes the actions palette not record our script
return false;
return true;
function resizeDocumentInPixels( width, height )
var myDocument = app.activeDocument;
var originalRulerUnits = app.preferences.rulerUnits;
app.preferences.rulerUnits = Units.PIXELS;
myDocument.resizeCanvas( width, height, AnchorPosition.MIDDLECENTER)
app.preferences.rulerUnits = originalRulerUnits;
function GetColorSettings()
var desc1 = new ActionDescriptor();
var ref1 = new ActionReference();
ref1.putProperty( classProperty, kcolorSettingsStr );
ref1.putEnumerated( classApplication, typeOrdinal, enumTarget );
desc1.putReference( typeNULL, ref1 );
var result = executeAction( eventGet, desc1, DialogModes.NO );
var desc2 = result.getObjectValue( kcolorSettingsStr );
return desc2;
function GetColorConversionDitherState()
var settings = GetColorSettings();
if (settings.hasKey(kDither))
return settings.getBoolean( kDither );
else
return null;
function ConvertTo16Bit()
const eventConvertMode = charIDToTypeID( 'CnvM' );
const keyDepth = charIDToTypeID( 'Dpth' );
var modeDesc16Bit = new ActionDescriptor();
modeDesc16Bit.putInteger( keyDepth, 16 );
var result = executeAction( eventConvertMode, modeDesc16Bit, DialogModes.NO );
// state = true or false
function SetColorConversionDither( state )
var desc1 = new ActionDescriptor();
var ref1 = new ActionReference();
ref1.putProperty( classProperty, kcolorSettingsStr );
ref1.putEnumerated( classApplication, typeOrdinal, enumTarget );
desc1.putReference( typeNULL, ref1 );
var desc2 = new ActionDescriptor();
desc2.putBoolean( kDither, state );
desc1.putObject( keyTo, kcolorSettingsStr, desc2 );
executeAction( eventSet, desc1, DialogModes.NO );
function PurgeClipboard()
var desc1 = new ActionDescriptor();
desc1.putEnumerated( typeNULL, typePurgeItem, enumClipboard );
var result = executeAction( eventPurge, desc1, DialogModes.NO );
// This helps us avoid resizing existing document views in tabbed document mode.
// This is new functionality, and will not work in older Photoshop versions.
function MoveDocumentToNewWindow()
var desc1 = new ActionDescriptor();
var result = executeAction( kFloatWindowStr, desc1, DialogModes.NO );
function main()
try
var tempDoc = null;
var tempDoc2 = null;
// do basic troubleshooting first
// make sure there is a document
if (!app.activeDocument)
gScriptResult = 'cancel'; // quit, returning 'cancel' (dont localize) makes the actions palette not record our script
return;
// check the document mode
var mode = app.activeDocument.mode;
if (mode != DocumentMode.RGB
&& mode != DocumentMode.LAB
&& mode != DocumentMode.CMYK)
var str = localize("$$$/JavaScripts/Export3DLUT/UnsupportedColorMode=Could not export Color Lookup Tables because only RGB, LAB, and CMYK color modes are supported.");
alert(str);
gScriptResult = 'cancel'; // quit, returning 'cancel' (dont localize) makes the actions palette not record our script
return;
// check the document depth, for safety
var depth = app.activeDocument.bitsPerChannel; // an object, not a number - why? I have no idea...
var bitsPerChannel = 1;
if (depth == BitsPerChannelType.EIGHT)
bitsPerChannel = 8;
else if (depth == BitsPerChannelType.SIXTEEN)
bitsPerChannel = 16;
else if (depth == BitsPerChannelType.THIRTYTWO)
bitsPerChannel = 32;
else
var str = localize("$$$/JavaScripts/Export3DLUT/UnsupportedImageDepth=Could not export Color Lookup Tables because only 8, 16, and 32 bits/channel are supported.");
alert(str);
gScriptResult = 'cancel'; // quit, returning 'cancel' (dont localize) makes the actions palette not record our script
return;
// Check layer types: background plus adjustments only
// For now, don't check each layer - a multiply solid layer still works as a color adjustment, as does selective blending
// Users will get odd results from other layer types (layer masks, pixel layers, etc.)
try
app.activeDocument.backgroundLayer.visible = true;
catch (e)
if (activeDocument.layers.length == 1)
alert( localize("$$$/JavaScripts/Export3DLUT/NoAdjustmentLayers=Could not export Color Lookup Tables because this document has no adjustment layers.") );
else
alert( localize("$$$/JavaScripts/Export3DLUT/NoBackground=Could not export Color Lookup Tables because this document has no background.") );
gScriptResult = 'cancel'; // quit, returning 'cancel' (dont localize) makes the actions palette not record our script
return;
// look for last used params via Photoshop registry, getCustomOptions will throw if none exist
try
var desc = app.getCustomOptions(kScriptOptionsKey);
readOptionsFromDescriptor( desc );
catch(e)
// it's ok if we don't have any existing options, continue with defaults
// set some values from the document
gDescription = app.activeDocument.name;
// ask the user for options, bail if they cancel at any point
if ( doExportUI() == false)
gScriptResult = 'cancel'; // quit, returning 'cancel' (dont localize) makes the actions palette not record our script
return;
// we're good to go, so save our parameters for next time
app.putCustomOptions(kScriptOptionsKey, createDescriptorFromOptions() );
// remove file extension from filePath, if there is one
gSaveFilePath = gSaveFilePath.replace(/\....$/,'');
// calculate the size of image we need
var width = gGridPoints * gGridPoints;
var height = gGridPoints;
if (mode == DocumentMode.CMYK)
height = gGridPoints*gGridPoints;
// duplicate the user document so we don't mess it up in any way
tempDoc = app.activeDocument.duplicate("temporary");
// make the temporary document active
app.activeDocument.name = tempDoc;
// to avoid resizing existing document views in tabbed mode
MoveDocumentToNewWindow();
// convert 8 bit documents to 16 bit/channel for improved quality of merged adjustments
if (bitsPerChannel == 8)
ConvertTo16Bit();
depth = BitsPerChannelType.SIXTEEN;
// resize the temporary canvas to our target size
resizeDocumentInPixels( width, height )
// select background layer
tempDoc.activeLayer = tempDoc.backgroundLayer;
// render lookup base grid
var worked = doRenderGrid( gGridPoints );
if (worked != true)
tempDoc.close( SaveOptions.DONOTSAVECHANGES );
return; // error should have already been shown, and there is not much we can do
// do not flatten here -- the export automatically gets flattened data
// and we may need layers for LAB->RGB conversion below
// export the chosen formats
worked = doExportLUTs( gSaveFilePath );
if (worked != true)
tempDoc.close( SaveOptions.DONOTSAVECHANGES );
return; // error should have already been shown, and there is not much we can do
// for LAB documents to export 3DLUT (which are inherently RGB), we have to do additional work
// As a bonus, this works for CMYK as well!
if ( mode != DocumentMode.RGB )
var filePath = gSaveFilePath + "RGB";
var oldDitherState = GetColorConversionDitherState();
try
SetColorConversionDither(false);
const targetProfileName = "sRGB IEC61966-2.1";
// new document temp2 in sRGB, matching depth of original
var originalRulerUnits = app.preferences.rulerUnits;
app.preferences.rulerUnits = Units.PIXELS;
tempDoc2 = app.documents.add( width, gGridPoints, 72, "temp2",
NewDocumentMode.RGB, DocumentFill.WHITE,
1.0, depth, targetProfileName );
app.preferences.rulerUnits = originalRulerUnits;
// make the new doc active
app.activeDocument.name = tempDoc2;
// to avoid resizing existing document views in tabbed mode
MoveDocumentToNewWindow();
// insert grid
worked = doRenderGrid( gGridPoints );
if (worked == true)
tempDoc2.selection.selectAll();
tempDoc2.activeLayer = tempDoc2.backgroundLayer;
tempDoc2.selection.copy();
tempDoc2.close( SaveOptions.DONOTSAVECHANGES );
tempDoc2 = null;
// make sure temp1 is active
app.activeDocument.name = tempDoc;
// resize for RGB grid
resizeDocumentInPixels( width, gGridPoints );
tempDoc.selection.selectAll();
tempDoc.paste(true);
PurgeClipboard(); // so we don't leave an odd, large item on the clipboard
tempDoc.selection.deselect();
tempDoc.flatten();
// convert temp1 to sRGB
tempDoc.convertProfile( targetProfileName, Intent.RELATIVECOLORIMETRIC, true, false );
// export the chosen formats
worked = doExportLUTs( filePath );
// at this point we still have to clean up, even if the call failed, so fall through
else
tempDoc2.close( SaveOptions.DONOTSAVECHANGES );
catch (e)
if ( e.number != 8007 ) { // don't report error on user cancel
var str = localize("$$$/JavaScripts/Export3DLUT/UnableToConvertRGB=Unable to convert image to RGB because ");
alert( str + e + " : " + e.line );
if (tempDoc2 != null) tempDoc2.close( SaveOptions.DONOTSAVECHANGES );
gScriptResult = 'cancel'; // quit, returning 'cancel' (dont localize) makes the actions palette not record our script
// always reset the dither state
SetColorConversionDither( oldDitherState );
PurgeClipboard(); // so we don't leave an odd, large item on the clipboard
} // if not RGB
// always close temp document without saving
tempDoc.close( SaveOptions.DONOTSAVECHANGES );
catch (e)
if ( e.number != 8007 ) { // don't report error on user cancel
var str = localize("$$$/JavaScripts/Export3DLUT/UnableToExport=Unable to export LUT because ");
alert( str + e + " : " + e.line );
// always close temp document without saving
if (tempDoc != null) tempDoc.close( SaveOptions.DONOTSAVECHANGES );
gScriptResult = 'cancel'; // quit, returning 'cancel' (dont localize) makes the actions palette not record our scriptHi blabla12345,
(untested and without warranty)
replace this line:
const sSaveCUBE = "CUBE";
with this:
const sSaveCUBE = "cube";
Have fun -
Is there any way to repeat the last action on a new selection?
I'm playing with Pages to see if I can use it instead of Word. I'm very expert with Word, just starting with Pages. Like some things, don't like some, but I think it's worth continuing to play with it to see if it will work for me. One problem I've been having is repeating an action. In Word, if you do something (in the particular situation I just had, it was deleting a row in a table), and then click on another place and do command-Y, it repeats what you did. Similarly, if you format a word as bold, say, and then select another word and do command-Y the second word will also be made bold. I realize the latter can be done in pages by selecting "emphasis" style for the second word, but I couldn't figure out any work-around for deleting the table rows (I tried selecting several non-adjacent rows, but "delete row" was greyed out on the actions menu). Any way to do this that I've missed?
Thanks anyway. I'm sorry that Apple didn't include a "repeat" keyboard shortcut - going to the Inspector and then the actions wheel and then "delete row" time after time wasn't fun.
I'm afraid I failed to communicate well about outline format - I didn't mean a bulleted or numbered list, I do know how to do that, but rather making a single character (or in my particular interest a symbol, the diamond and heart suit symbols) appear in outline text format. You can do it by going to format->font->outline, but if I want to do it for several occurrences of the same thing (or a few different things), it's not much fun to do it that way. But maybe I can define a character format that's outline and that will work. Still would prefer to have a keyboard shortcut to apply the character format though.
Incidentally, while I'm talking about diamonds and hearts, is there any way to change the amount of space that gets put in after the diamond and heart symbols if you insert them using Edit->Special Characters? I write a lot of documents that use those symbols and lines end up unevenly spaced because of the large amount of space below each symbol (I've figured out a partial work-around - I defined a style for "body after suit symbol" that is raised enough to get the line spacing right, but that only works when I want to have a hard return at the end of the line with the suit symbols, since if the lines wrap, both lines have to have the same paragraph formatting. This problem isn't really Pages related - I have the same difficult with Word . -
Is there a way to save the last curor position in Numbers?
Is there a way to save the last curor position in Numbers? We have a custom Budget spreadsheet but every time we open the file, we have to scoll to the bottom of the spreadsheet.
There are several thousand entries, and every time we open it, we have to scroll to the bottom of the screen which is getting fairly annoying.
Every time we open it, regardless of what sheet or cell we are in when it is saved previously, it opens at the top....
Any suggestions?
Thanks!reverse the order of you entries and add rows at the top of the table. That is have newest date entries at the top and oldest at the bottom
-
Is there a way to get the correct order from the dependent types of a sche
Hi ,
I have a CT facing the following problem:
When trying to built a SQL script to create all the object types within a schema using the DBMS_METADATA packages.
Did insert in a table the names of the types that will be exported following a concrete order, next loop into the table and call the DBMS_METADATA package for each row.
These type are depedent between them, there are some type attributes calling other types and here the issue
First : try to generate the order by created column of dba_objects and when the generated SQL script is launched a lot of type appearing as incomplete state due to the order isn't correct.
Second : try to insert the table ordering by object_id colums of dba_tables view, it appears incomplete types too.
Currently want to insert the table using a recursive query with connect by against the dba_type_attrs starting with the rows when ATTR_TYPE_NAME is not null (the types that are called by other types), but this way has a issue dificult to resolve: the roots of hierarchy are the rows when ATTR_TYPE_NAME is not null and we've dependencies between roots nodes
The question is is there a way to get the correct order from the dependent types of a schema?
Platform: IBM SP AIX
DB version: 9.2.0.7
Any help will be appreciated .
Thanks in advance.The xxx_dependencies view should give you the dependencies betwee nthe various types. I would look at something along the lines of:
SELECT object_name, referenced_name
FROM (SELECT o.object_name, d.referenced_name
FROM user_objects o, user_dependencies d
WHERE o.object_name = d.name(+) and
o.object_type = d.type(+) and
d.referenced_type(+) = 'TYPE' and
o.object_type = 'TYPE')
START WITH referenced_name IS NULL
CONNECT BY PRIOR object_name = referenced_nameThe outer join between user_objects and user_dependencies is required to generate the names of types which are not dependent on other types, or do not have other types dependent on them.
HTH
John -
Is there a way to use the common J-K-L keystrokes to play forward and backward in iMovie '11?
Is there a way to use the common J-K-L keystrokes to play forward and backward in iMovie '11? Most editing apps--like Final Cut Pro, QuickTime Pro, Avid, etc.--use this convention. I find not having it slows editing down considerably? I don't see it listed in keyboard shortcuts; is there any way to add it? Thanks!
I don't think so. If you click iMovie/Help, you will see a list of all keyboard shortcuts.
Here they are.
Get information
Open iMovie Help
Command-Shift-Question Mark (?)
Open the Project Properties window
Command-J
Open the Project Theme window
Command-Shift-J
Show playhead info
Shows date, time, and keywords for video frames above the playhead.
Command-Y
Import and export
Import from camera
Command-I
Export movie
Command-E
Play video
Play video beginning from the frame beneath the pointer
Space bar
Play 1 second of video total—0.5 seconds before the pointer and 0.5 seconds after
Plays only 0.5 seconds of video from the beginning of the selection or to the end of the selection if the pointer is resting within the selection border.
Left Bracket ([)
Play three seconds of video total—1.5 seconds before the pointer and 1.5 seconds after
Plays only 1.5 seconds of video from the beginning of the selection or to the end of the selection if the pointer is resting within the selection border.
Right Bracket (])
Play selection
Slash (/)
Play selected event or project from the beginning
Backslash (\)
In the Event browser, speed up playback from 1x to 2x to 4x by pressing the key one time or two times, respectively
Right Arrow key
In the Event browser, slow down playback from 4x to 2x to 1x by pressing the key one time or two times, respectively
This action works only if you’ve already sped up the playback.
Left Arrow key
When playing Event video, jump forward 3 seconds (6 seconds when playing at 2x speed or 12 seconds when playing at 4x speed)
Shift-Down Arrow key
When playing Event video, jump back 3 seconds (6 seconds when playing at 2x speed or 12 seconds when playing at 4x speed)
Shift-Up Arrow key
When playing Event video, jump forward to the next clip
Down Arrow key
When playing Event video, jump to the beginning of the current clip, or jump to the previous clip if the playhead is near the beginning of the current clip
Up Arrow key
Play the selected Event or project full screen
Command-G
Exit full-screen mode
Escape (Esc) key
Move the playhead by one frame
Left Arrow key or Right Arrow key
Freeze the playhead
Hold down Control key
When skimming, keep the cursor in the middle of the row
Option-Shift
Manage projects and events
Create new project
Command-N
Move to Trash
Moves the selected project (in the Project Library), Event (in the Event Library), or Event clip (in the Event browser) to the Trash. If only part of an Event clip is selected, the entire clip is moved to the Trash.
Command-Delete key
Open iMovie preferences
Command-Comma (,)
Page setup
Command-Shift-P
Print selected Event or project filmstrips
Command-P
Select and edit video
Select an entire project or Event clip when a partial clip is selected, or select all project or Event clips when an entire clip is selected
Command-A
Select to playhead
Expands or contracts the selection from the nearest selection border to the playhead.
Shift-A
Deselect all clips
Command-Shift-A
Add selected frames to project
E
Split a clip on both ends of a selection (longer than five frames), or at the playhead position if nothing is selected
Command-Shift-S
Cut selected frames
Command-X
Copy selected frames
Command-C
Paste selected frames
Command-V
Paste all adjustments
Command-Shift-V
Paste video adjustments
Command-Option-I
Paste audio adjustments
Command-Option-A
Paste crop adjustments
Command-Option-R
Paste cutaway, green-screen, or picture-in-picture adjustments
Pastes adjustments, depending on which type of video is selected.
Command-Option-U
Paste video effect -
Is there a way to get Front Row?
I have a first gen Mac Mini PowerPC , I have Tiger 10.4.5, and i am wodering if there is a way to download Front Row on my computer or is there any way to get front row? or do i have to pay?
hi salvatore,
you'd be better off googling for this type of thing.
front row is only available pre-installed on
the new imacs
the macbook pro
and the new mini
i think it was first released with the g5 imac w/isight built in, and came with a remote. all the computers that came out with front row have come with an apple ir remote.
but front row isn't available to put on older systems. it isn't for sale or anything. and won't run on any system besides the new ones that i comes with.
or so they say. i've heard it can be done. but like i said, you should google it, cause posting that kind of hack would be in violation of the terms of use.
joey -
One of the folders on my external hard drive has transformed into a unix executable file and I can no longer access my files. Is there any way to save the data?
Wow, have seen Files do that, but a whole Folder as I recall!
Could be many things, we should start with this...
"Try Disk Utility
1. Insert the Mac OS X Install disc, then restart the computer while holding the C key.
2. When your computer finishes starting up from the disc, choose Disk Utility from the Installer menu. (In Mac OS X 10.4 or later, you must select your language first.)
Important: Do not click Continue in the first screen of the Installer. If you do, you must restart from the disc again to access Disk Utility.
3. Click the First Aid tab.
4. Select your Mac OS X volume.
5. Click Repair. Disk Utility checks and repairs the disk."
http://docs.info.apple.com/article.html?artnum=106214
Then try a Safe Boot, (holding Shift key down at bootup), run Disk Utility in Applications>Utilities, then highlight your drive, click on Repair Permissions, reboot when it completes.
(Safe boot may stay on the gray radian for a long time, let it go, it's trying to repair the Hard Drive.) -
Is There A Way To Normalize The Volume Of My Library Without "Sound Check"?
Is there a way to put the volume of my entire library at say, +1.0 dB? It's annoying to have music that's at -5.7 and then listen to something that's at +2.0 and constantly having to adjust the volume. I have Sound Check enabled on my iPod but it really doesn't do much at all. Does anyone know if I can basically highlight everything or something and normalize the volume of my entire library so that it's at a specific dB level? The Volume Adjustment doesn't allow for specific figures and would require me to do it track by track which at 23,000+ tracks would take me an obscene amount of time to do. Thanks
EDIT: Have no idea why part of this is italicized it just did that by itself it seems.You are correct, many people have noticed over the years that Sound Check does not work as advertised.
A more effective approach is to treat the files with a 3rd party volume normalization program. Although I have not personally used it, many users on this Forum have reported good results from an inexpensive program called iVolume.
Maybe you are looking for
-
I read that the drivers for this printer come with Leopard. However, when I go to system preferences, print and fax, add a printer, it doesn't see the printer. I have also read that the printer works better when i use the drivers that came with leopa
-
Finding the mean of a series of complex numbes to generate an avergage FFT spectrum
Hi All I have a a 2d array of complex numbers. In fact I have a 10 x 133210 array that represents the complex result of a series of ffts taken from the time series of 10 mics. For example Frequency :::::: 1Hz 2 Hz 3Hz 4Hz 5H
-
Reporting in Multiple Languages
We are developing a system to be used in several different languages. There is no problem getting the report data to be in the correct language as we hold names etc for every language within our application. However in order to make the reports reada
-
I can no longer move an object with arrow keys
Pretty sure I have inadvertently disabled the option to select an object and move it with the arrow keys on my keyboard, but cannot figure out what I did - or how to enable that option again. Illustrator CC 27" iMAC late 2013 OS 10.9.5
-
Installing full version of LR4; do i need to uninstall LR3.6?
I am running Lightroom 3.6 on my desktop (Windows Vista) and my laptop (Windows 8). Do I need to uninstall 3.6 before installing the full version of LR4? (I purchased the full version not the upgrade.) If I save my catalog will I be able to open it