Toggle visibility for the Group layer

With the help of this forum, I got a script that activates / deactivates the visibility of a specific layer without selecting the layer.

I would like to know if the same functionality can be obtained for a layer group.

In other words the script can toggle the visibility of a layer with output actually group by selecting the Group of layers?

I understand that some parts of Photoshop are not scriptable and wan to ensure that it is not one of them, before I was embarking on the creation of the script.


I have a script that does what you need. Can't remember if I got here, but I know that the scripts here guys are geniuses and can help you with almost anything. That being said, here's the script you need. All you need to do is replace the three parties "Insert Layer Name Here" with the name of the layer you want to toggle. Don't thank me, thank the guy who wrote (probably someone here)

var targetID = getLayerIDByName('Insert Layer Name here');
if(undefined != targetID){
    if(getLayerVisibilityByID( targetID ) ){
        hideByName('Insert Layer Name here');
    }else{
        showByName('Insert Layer Name here');
    }
}
function getLayerIDByName(name) {
    try{
    var ref = new ActionReference();
    ref.putProperty( charIDToTypeID("Prpr") , charIDToTypeID( "LyrI" ));
    ref.putName( charIDToTypeID( "Lyr " ), name );
    return executeActionGet(ref).getInteger(charIDToTypeID( "LyrI" ));
    }catch(e){}
};
function getLayerVisibilityByID( id ) {
    var ref = new ActionReference();
    ref.putProperty( charIDToTypeID("Prpr") , charIDToTypeID( "Vsbl" ));
    ref.putIdentifier( charIDToTypeID( "Lyr " ), id );
    return executeActionGet(ref).getBoolean(charIDToTypeID( "Vsbl" ));
};
function hideByName(name) {
    var desc = new ActionDescriptor();
        var list = new ActionList();
            var ref = new ActionReference();
            ref.putName( charIDToTypeID('Lyr '), name );
        list.putReference( ref );
    desc.putList( charIDToTypeID('null'), list );
    executeAction( charIDToTypeID('Hd  '), desc, DialogModes.NO );
};
function showByName(name) {
    var desc = new ActionDescriptor();
        var list = new ActionList();
            var ref = new ActionReference();
            ref.putName( charIDToTypeID('Lyr '), name );
        list.putReference( ref );
    desc.putList( charIDToTypeID('null'), list );
    executeAction( charIDToTypeID('Shw '), desc, DialogModes.NO );
};

EDIT-Oops, I just realized that it is only for layers, not groups. But I hope that it is a starting point

Tags: Photoshop

Similar Questions

  • Captivate in 8, can you apply an effect (for example, a transition) for the grouped shapes? (I can apply the effect to a single shape, but when I group forms, I can't understand how).

    Captivate in 8, can you apply an effect (for example, a transition) for the grouped shapes? (I can apply the effect to a single shape, but when I group forms, I can't understand how).

    Hello

    It is not possible to apply effects to groups of forms. You can apply the transition from the distribution panel and other properties in the property inspector.

    You will need to apply the same effect of the same duration for all objects in a group in this case.

    Thank you.

  • How you change the highlight color for the active layer in the layers panel?

    How can you change the highlight color for the active layer in the layers panel BY 9?

    Do you mean you want something other than the darker gray (windows) or blue (mac)? Sorry, no can do, if that's what you hear.

  • New default length for the text layer

    Whenever I have add a new image or a text layer, it goes the entire length of the model. Can I change so that it will only a few images by default?

    You can set it in the AE preferences.  But if you're dealing with a group of layers of text or still images, and they are believed to have different lengths, it can get to be a real pain.

    Many people find more easy just use the keyboard shortcuts for the value of the layer in & points: opt/alt-[for the point in opt/alt] - to the out point.  He works for several layers, too: just select the ones you want before using keyboard shortcuts.

  • Turn off the visibility of the Group of clips?

    Very simple question... How can I configure a table (or other method), to turn off the visibility of a group of clips at once?

    I tried this...

    var invisibleMCs:Array = new Array ("MC1", "MC2", "MC3");

    invisibleMCs._visible = false;

    .. .and it does not work. I know this is a very basic problem, but I don't get my little brain. Any help would be appreciated.

    you need to loop through your table:

    mcVisibleF (false);

    function mcVisibleF(b:Boolean) {}

    for (var i: Number = 0; i<>

    invisibleMCs [i] ._visible = b;

    }

    }

  • Merge the LAYERS VISIBLE on the new layer

    a very common thing I use is merge the VISIBLE LAYERS on the new layer.

    now I know that in the config. I can add a MERGE VISIBLE button, which is the equivalent of CTRL + SHIFT + E, but I use SHIFT + CTRL + ALT + E all the time so I can combine things, but on a new layer... How can I do this?

    IM thinking that I use the Configurator, more and more, he needs a type of option so that when you add buttons and menu commands, if you could have a small check box to add additional options of CTRL or ALT or SHIFT for all orders to extend/tweak these commands Assistant... as is the seventh thing I'm wishing there was a way to unless of course I can add the code in the box "script."

    TX for any input, gg

    Quote:
    Posted by: gary greenwald
    Hello, thanks for responding.
    I tried your code so that I could send to merge the VISIBLE LAYERS as a ctl + shift + alt + e command instead of shift + ctl Edlin (so do a MERGE VISIBLE on a new layer and not simply merge down all layers), but replace the default with your code code has not changed anything , I could still see it merge all visible layers on a new layer, he just did the regular fusion...

    If you can try again and let me know if you find, id be overjoyed because I really use TMS + ctl + alt + e on each photo several times, but I never use TMS + ctl + e... TS just a matter of sending this additional order ALT in the code, thanks
    Gary

    Try this:

    var idMrgV = charIDToTypeID ("MrgV");
    var desc10 = new ActionDescriptor();
    var idDplc = charIDToTypeID ("Dplc");
    desc10.putBoolean (idDplc, true);
    executeAction (idMrgV, desc10, DialogModes.NO);

  • Support for the 'grouping' Dual LAN

    I bought a router of WRT600N, which was far & away the router wireless dual band to use more expensive (& only) available at the time + 2 compatible Ultra Range Plus USB receivers.  Apparently Linsys/Cisco decided to abandon this model & more support - still firmware version 1.0 (from 2008).  OK, then repeat ceMarketing not high on their priorities.

    I recently upgraded my hardware in a platform Intel 1156 running Win 7 Ultimate 64-bit completely.  The new motherboard, a Gigabyte GA-P55-UD5, has a 'dual LAN' support that allows "bundling" - potentially 2 GB support & self-switching if a port is not functional.  Apparently, it requires a router that has 'IEEE 802.3ad' capabilities.  As far as I can tell, this potentially interesting feature only is not supported, & the firmware upgrade failure suggests it will be never. - bought their "Network Magic" software Pro to add another $50.

    So the question is this: I believe - no double support LAN is built in & never will be--or is there a way to use this feature?  Suffice to say, if I paid about $420 for the router & USB receivers where if other router support him on the level of consumption, I will never consider a Linksys/Cisco product in this life.

    Thanks for some clarity - that someone has to offer.

    I would say the associations are no consumer router function. If you really need a connection of 2 Gbps to a single device to your network, I wonder what other device to communicate with this speed. It is not only another device because it would have only 1 GB/s unless you team two remaining ports as well. (Do not forget that desktop computers more level of consumption are not yet fast enough to offer or receive data at a rate even if they have a Gigabit ethernet port).

    If you have a set of other features which, in combination, require 2 Gb/s access server, then you will have again the same problem: it must connect somewhere which means you need a switch that must be connected to the two remaining LAN ports. But then, you might as well get a switch that supports reunification and enough ports and connect everything what he. Of course, an ethernet switch that supports the grouping is usually some 'smart' managed switch that cost easily more then your WRT600N.

    So I think that grouping will be never supported on any Linksys consumer device. If you then you must watch the Cisco Small Business series or better. They have some devices supporting 802. 1 q VLAN and therefore potentially also 802.3ad. Although even in this case I doubt because given the number of ports available on these devices is not really a lot of sense to support at least on a router 4 ports. Devices consumer and SOHO are not for internet connections of 1 Gbit/s or more. So you can only use the speed inside the LAN, but with 4 ports that would be difficult... So I would say that by their design these routers don't support grouping. If you need grouping within your LAN, get a managed switch...

  • Too big for the grouped SQL 2 K 8 Express Database?

    I'm plodding through the vCenter Server 5.1 Upgrade Guide, all the time, assuming that I didn't need to worry about installing a complete SQL DB for 5.1, and I come across this Page 51:

    > Microsoft SQL Server 2008 R2 Express: group database that you can use for small deployments of virtual hosts up to 5 and 50 machines.

    I have 3 guests and 36 VMs.  These 36 VMs, about 25 are critical.  We you will develop, but we should be good for another year or more.

    Question1: should I worry about the time, licenses, etc. to create a complete SQL DB for vCenter 5.1 upgrade?

    Question2: is SQL 2 K 8 R2 Express come with the file .iso image for the upgrade to vCenter and just install/upgrade it first?

    Ty

    -lc

    Answer 1: You can go with the Express for your deployment. In fact, the limitation is a soft and only has an impact on the size of DB stored by vCenter (R2 Express now have a 10 GB limit size of DB) and performance. You CAN have more than 50 virtual machines / 5 ESX, but if you have a problem with your vCenter service (i.e. vCenter start fail, slow performance when you access the inventory, etc.), VMware will not support you in this case. Virtual machines will not be affected by this.

    Answer 2: Yes, SQL Express are delivered on the installation of VC. He moved with vCenter (you can choose during installation).

  • Trying to get ending entry into force for the groups of lines

    Hello world

    I searched the forums, but I can't find a post that is a problem quite like that.

    I have some data that looks like this:
            ID_NUM     EFFECTIVE ALLOC_PERCENT   ACCT
    ---------- --------- -------------   ----
           101 01-JUL-11            21   A1
           101 01-JUL-11            72   A2
           101 01-JUL-11             7   A3
    
           101 01-JUL-12            20   B1
           101 01-JUL-12            80   B2
    
           101 01-JAN-13            20   A1
           101 01-JAN-13            20   A2
           101 01-JAN-13            50   A3
           101 01-JAN-13            10   B1
    
           101 01-JUN-13            50   A1
           101 01-JUN-13            50   A2
    (note: I inserted manually empty lines for clarity)

    Here's the logic: the lines represent an assignment of percentage on the account for the identification number specified for this entry into force. A new date to cancel the previous, and if any line in the conceptual group is replaced, so they are all.

    I'll try to find the date when the effective period of each group ended and which includes in the game so that I can calculate then the number of days in a given line has been effective; something like that;
      ID_NUM     EFFECTIVE END_DATE   ALLOC_PERCENT ACCT
    ---------- --------- ---------- ------------- ----
           101 01-JUL-11 01-JUL-12             21 A1
           101 01-JUL-11 01-JUL-12             72 A2
           101 01-JUL-11 01-JUL-12              7 A3
    
           101 01-JUL-12 01-JAN-13             20 B1
           101 01-JUL-12 01-JAN-13             80 B2
    
           101 01-JAN-13 01-JUN-13             20 A1
           101 01-JAN-13 01-JUN-13             20 A2
           101 01-JAN-13 01-JUN-13             50 A3
           101 01-JAN-13 01-JUN-13             10 B1
    
           101 01-JUN-13 <null>                50 A1
           101 01-JUN-13 <null>                50 A2
    The end_date of the group is the EFFECTIVE_DATE of the next group (ordered by ID_NUM, EFFECTIVE_DATE).

    End_date of two rows is zero because there is no group of lines with an effective date the later - in my process, I'll NVL which sysdate so that my calculations of days will be valid.

    I tried some analytical queries with LEAD, but I couldn't figure out how to get the next date of the efficient group. I could get the entry into force of the next row, but not the next group. I couldn't specify how many lead lines to look forward, because there is not a number of rows in each group.

    How to fill the end_date column?

    Here's the code to create the above.
    create table t
    (id_num number,
     effective_date date,
     alloc_percent number,
     acct_code varchar2(4)
     );
    
    insert into t (id_num,Effective_date,alloc_percent,acct_code) values(101,'01-jul-2011',21.0,'A1');
    insert into t (id_num,Effective_date,alloc_percent,acct_code) values(101,'01-jul-2011',72.0,'A2'); 
    insert into t (id_num,Effective_date,alloc_percent,acct_code) values(101,'01-jul-2011',7.0,'A3');
    insert into t (id_num,Effective_date,alloc_percent,acct_code) values(101,'01-jul-2012',20.0,'B1');
    insert into t (id_num,Effective_date,alloc_percent,acct_code) values(101,'01-jul-2012',80.0,'B2');
    insert into t (id_num,Effective_date,alloc_percent,acct_code) values(101,'01-jan-2013',20.0,'A1');
    insert into t (id_num,Effective_date,alloc_percent,acct_code) values(101,'01-jan-2013',20.0,'A2');
    insert into t (id_num,Effective_date,alloc_percent,acct_code) values(101,'01-jan-2013',50.0,'A3');
    insert into t (id_num,Effective_date,alloc_percent,acct_code) values(101,'01-jan-2013',10.0,'B1');
    insert into t (id_num,Effective_date,alloc_percent,acct_code) values(101,'01-jun-2013',50.0,'A1');
    insert into t (id_num,Effective_date,alloc_percent,acct_code) values(101,'01-jun-2013',50.0,'A2');
    
    commit;
    
    select * from t;
    Oracle version information:
    Oracle Database 11 g Enterprise Edition Release 11.2.0.3.0 - 64 bit Production
    PL/SQL Release 11.2.0.3.0 - Production
    "CORE 11.2.0.3.0 Production."
    AMT for Solaris: 11.2.0.3.0 - Production Version
    NLSRTL Version 11.2.0.3.0 - Production


    Thank you very much

    Hello

    Here is one more way to do using lead work.

    WITH ds as (id_num, effective_Date, lead (effective_date) select on end_date (id_num order, effective_Date))

    t

    Id_num group, effective_date)

    Select t.*, ds.end_date

    DS, t

    where t.effective_Date = ds.effective_Date;

  • JS CS4: Create the variable for the active layer, and then select the layer at the end of a script

    I'm come white with the verbiage and spin my wheels with OMV guide and script.

    var myOriginalLayer = app.activeDocument.layers.item (0);
    Alert (myOriginalLayer)

    Returns "layer object" and not the name of the layer.

    var myOriginalLayer = app.activeDocument.layers.lastItem () .name;

    Returns the name of the layer I want but not by choice.

    I am challenged on how to select the layer.

    Hi John,.

    The difference lies in that the [Object Layer] is the real object, and the 'name' is a property - like color.

    You can use one of these two approaches:

    var myOriginalLayer = app.activeDocument.layers.item (0);
    Alert (myOriginalLayer.Name);

    hosts the original layer object, and you can see the name if necessary :-)

    For re - select the layer, use

    app.activeDocument.activeLayer = myOriginalLayer;

    You can also select name goes like

    var myOriginalLayerNAME = app.activeDocument.layers.lastItem () .name;

    ...

    app.activeDocument.activeLayer = app.activeDocument.layers.item (myOriginalLayerNAME);

    I also noted the following:

    app.activeDocument.layers.item (0) points to the first layer of your document; not the 'active'. Similarly, app.activeDocument.layers.lastItem () points only to the very last. I don't know if the order of the activeDocument.layers array mimicks the order as shown in the tags palette, but I hope for it :-)

    To get/set the active layer, use app.activeDocument.activeLayer as shown above.

  • Archiving of trigger of end for the Group again

    Hello
    I use Oracle 11.2 64 bit
    Is there a trigger when a redo log group is archived (archival process is complete)?
    Kind regards
    Groxy

    You can install a log_archive_dest for re - try a destination failed after a few seconds, and also make the optional destination for the whole of the base is not crushing a setback if the destination is unreachable.

    Take a look on the doco for log_archive_dest attributes:

    http://download.Oracle.com/docs/CD/B19306_01/server.102/b14239/log_arch_dest_param.htm#SBYDB01100

    I hope this helps.

    Thank you
    Paul

  • Index for the Group of readonly cache table

    Hello

    Suppose I have a table in Oracle which is cached in TT as a readonly cache group.
    The oracle table has a primary key, based on columns (c1, c2, c3).

    Now, the oracle table also has a unique index (for example defined on columns c4, c5) in support of some queries.

    (1) is there a way to propagate this unique index for the cache group? (so that we can perform queries effectively TimesTen)

    (2) is it correct to assume that the group create cache statement MUST have the columns (c1, c2, c3) for the primary key? (that is, exactly the same as the pharmacokinetics of the oracle)


    Thank you!

    (1) after you have created the cache in TimesTen group, simply create the index needed on the tables of cache in TimesTen (using CREATE [UNIQUE] INDEX) as you would for any table.

    (2), it depends. A caching table must have a primary key defined in TimesTen. This PK must map to either a real PK defined in Oracle (same column names, order of the columns, data types, nullability, etc..) or a unique index defined on a set of columns not null (column names of the soul, order of the columns, types of data etc.).

    Chris

  • Qosmio G40 - second HDD not visible for the facilities WXP CD

    Hello

    I tried to install Windows XP Home edition on the second hard disk on G40 (by booting from the installation CD), but windows Windows XP Home edition Setup did not find any hard disk?

    I don't have the drivers for the hard disk with laptop. Where to find it?
    Thank you.

    Antonio

    Hello

    A question: have you installed the Intel Matrix Storage Manager Manager?
    Please note that this IMSM is needed to install the Vista or XP on the laptop.

    The package of Robson (including the IMSM) for Vista was published on the Toshiba page.
    If you need the IMSM for XP please download from the Intel site and install it by pressing the F6 key during the installation procedure.
    To install this driver, you will need an external USB FDD drive!

    Good bye

  • Question on DNS entries for the grouping and the call

    Hey all,.

    We test a bunch of highway that has been placed in its own subdomian DNS (for example)

    cluster.Domaine.com

    With DNS entries:

    SRV

    _sips._tcp.cluster.domain.com. 86400 IN SRV 5061 1 1 Expressway1.cluster.domain.com.

    _sips._tcp.cluster.domain.com. 86400 IN SRV 5061 1 1 Expressway2.cluster.domain.com.

    _sip._tcp.cluster.domain.com. 86400 IN SRV 1 1 5060 Expressway1.cluster.domain.com.

    _sip._tcp.cluster.domain.com. 86400 IN SRV 1 1 5060 Expressway2.cluster.domain.com.

    _h323ls._udp.cluster.domain.com. 86400 IN SRV 1 1 1719 Expressway1.cluster.domain.com.

    _h323ls._udp.cluster.domain.com. 86400 IN SRV 1 1 1719 Expressway2.cluster.domain.com.

    _h323cs._tcp.cluster.domain.com. 86400 IN SRV 1 1 1720 Expressway1.cluster.domain.com.

    _h323cs._tcp.cluster.domain.com. 86400 IN SRV 1 1 1720 Expressway2.cluster.domain.com.

    _h323rs._udp.cluster.domain.com. 86400 IN SRV 1 1 1719 Expressway1.cluster.domain.com.

    _h323rs._udp.clusterdomain.com. 86400 IN SRV 1 1 1719 Expressway2.cluster.domain.com.

    A

    Expressway1.cluster.domain.com. IN a x.x.x.x (address IP Expressway1)

    Expressway2.cluster.domain.com. IN a x.x.x.x (address IP of Expressway2)

    However, I would actual calls placed to the root domain

    domain.com

    But with these entries DNS pointing to the subdomain of cluster, or I point to the individual counterparts of the cluster (see above). My feeling is that what I should do to the cluster so I need update DNS entries for the main domain if the peer of the cluster changes, such as:

    SRV

    _sips._tcp.domain.com. Cluster.Domaine.com IN SRV 0 0 5061 3600.

    _sip._tcp.domain.com. Cluster.Domaine.com IN SRV 0 0 5060 3600.

    But is this correct?

    Post edited by: Chris Swinney

    Comment added to records showing that they point to

    Hi Chris, how are you?

    If I remember correct SRV RFC which would be an error because no recursive search of srv would get,

    the address at the end of the srv record must be an a record (so also no CNAME).

    In your scenario, you can use:

    _sips._tcp.domain.com. 86400 IN SRV 5061 1 1 Expressway1.cluster.domain.com.

    _sips._tcp.domain.com. 86400 IN SRV 5061 1 1 Expressway2.cluster.domain.com.

    _sip._tcp.domain.com. 86400 IN SRV 1 1 5060 Expressway1.cluster.domain.com.

    _sip._tcp.domain.com. 86400 IN SRV 1 1 5060 Expressway2.cluster.domain.com.

    _h323ls._udp.domain.com. 86400 IN SRV 1 1 1719 Expressway1.cluster.domain.com.

    _h323ls._udp.domain.com. 86400 IN SRV 1 1 1719 Expressway2.cluster.domain.com.

    _h323cs._tcp.domain.com. 86400 IN SRV 1 1 1720 Expressway1.cluster.domain.com.

    _h323cs._tcp.domain.com. 86400 IN SRV 1 1 1720 Expressway2.cluster.domain.com.

    _h323rs._udp.domain.com. 86400 IN SRV 1 1 1719 Expressway1.cluster.domain.com.

    _h323rs._udp.domain.com. 86400 IN SRV 1 1 1719 Expressway2.cluster.domain.com.

    h323cs and rs cannot be used (cs is if you dial the field directly without user @ from the beginning)

    RS is used for registration, most of the configurations that I saw live fine without it...

    BTW, if it is a copy paste, replace your alone there is an error in the last entry of rs, it lacks one. between the two

    cluster and field.

    Btw2, I would set a record also has to be cluster.domaine.com at least one of the VCS, it's

    very convenient for endpoints no or wrong to support srv records.

  • CC of Dreamweaver for creating nav for the psd layer?

    Have used for a very long time adobe products, taking a few years off and now looking at using the CC to make projects internet-platform. In the past, created from layers in the Photoshop files, menus in Navigation who answered the mouse above and down. Example for the various layers to answer in a PSD file with the mouse and the mouse down. Is this possible in Dreamweaver with extraction or other methods? or do I need to do it in Flash, if it is done in flash, then this can be used in cross-platform internet projects (web, smartphone, Tablet) in responsive web design with bootstrap? Started to seek to do, it is in Fireworks, but Fireworks is currently abandoned. What are the new ways to address more effectively?

    A lot has changed in a few years.  Flash is a web technology that is now dead.  iOS, Android and other smart devices can't and never will be, so Flash is out.

    Mouse event triggers won't hurt on touchscreens because they have no mouse.  Again, the generated PSD menus are one is not a good option in Responsive Web Designs.

    Old fashioned and multi-level drop menus have lost favor in recent years because they absorb too much real estate and they are awkward for users of mobile devices. The trend is now simplified, touch friendly menus collapsing on smaller devices.  See the example. Editor of Tryit v2.6

    Use PS to design comps and images only.  Learn to work with HTML5, CSS and JavaScript. Sensitive use frameworks such as Bootstrap if they will help you to start your projects.

    Bootstrap DW CC tutorials

    https://helpx.Adobe.com/Dreamweaver/how-to/make-style-Web-page.html

    Nancy O.

Maybe you are looking for