Switch King Pro

Moderator: Telldus

MartinV
Posts: 277
Joined: Fri Mar 17, 2023 9:45 am
Contact:

Re: Switch King Pro

Post by MartinV »

Snygg planlösning :)
grahnen wrote:[...]En snabb fråga till är det lätt att få till så man kan ha olika ikoner på olika devices.[...]
Du kan justera detta i filen DeviceControl.asx.cs

Skrev några rader (ej testat dock, eftersom jag bara tittade på källkoden...)
Leta fram funktionen SetStateImagesUrl och justera den enligt nedan:

Code: Select all

    private void SetStateImagesUrl()
    {
        this.imgStatus.ImageUrl = GetDeviceStateImagePath();
        this.btnStatus.ImageUrl = imgStatus.ImageUrl;

        // Lägg till en "if-sats" per anpassad bild...
        if (this.Device.Name.Equals("MinEnhet1"))
            this.imgStatus.ImageUrl = this.imgStatus.ImageUrl.Replace("/img/", "/img/BildPrefix1");
        else if(this.Device.Name.Equals("MinEnhet2"))
            this.imgStatus.ImageUrl = this.imgStatus.ImageUrl.Replace("/img/", "/img/BildPrefix2");
    }
Där du alltså tittar på namnet på varje enhet (det finns ju andra alternativ förstås) och sen gör en enkel sök/ersätt på bildsökvägen, så att du får ett prefix framför varje bildnamn.
Med exemplet ovan så borde din enhet som heter "MinEnhet1" visas med bilden "MinEnhet1DeviceOn.png" istället för "DeviceOn.png".
Om du gör som i exemplet så får du bara prefix på just de enheter du vill justera.
Martin | http://www.switchking.se
Testa Switch King Pro i din Android/iPhone/iPod: http://www.switchking.se/sv/demo
grahnen
Posts: 38
Joined: Fri Mar 17, 2023 9:45 am

Re: Switch King Pro

Post by grahnen »

Tackar, fungerar kanon men det var inte riktigt hela vägen =). Nu har jag rätt icon i devicecontrol menyn men på planlösningen så är det fortfarande den gamla iconen. Samt att iconen framför valen Enligt schema, På, Av fortfarande kör iconer utan p prefixet.

Code: Select all

    private void SetStateImagesUrl()
    {
        this.imgStatus.ImageUrl = GetDeviceStateImagePath();
        this.btnStatus.ImageUrl = imgStatus.ImageUrl;

        // Lägg till en "if-sats" per anpassad bild...
        if (this.Device.Name.Equals("Pow. Fontän P3"))
            this.imgStatus.ImageUrl = this.imgStatus.ImageUrl.Replace("/img/", "/img/p");
    }
MartinV
Posts: 277
Joined: Fri Mar 17, 2023 9:45 am
Contact:

Re: Switch King Pro

Post by MartinV »

Insåg snabbt att det lätt blir ohållbart om du ska byta alla bilder på varje enhet och behöva skriva en massa if-satser, så jag skrev om lite.

I filen Default.aspx, där du har angett dina enheter har jag kompletterat med "ImgPrefix" som du inte behöver använda (kan lämna blank).
I exempelfilen skulle det se ut så här:

Code: Select all

<div id="Device4" style="position: absolute; top: 515px; left: 405px;">
    <switchKing:DeviceControl ID="DeviceControl4" runat="server" DeviceName="Fönsterlampa lekrum" ImgPrefix="mittprefix" />
</div>
I filen DeviceControl.ascx.cs har jag bytt kompletterat metoden Page_Load och SetStateImagesUrl och lagt till några delar:

Code: Select all

protected void Page_Load(object sender, EventArgs e)
{
    Response.Expires = -1;

    if (!Page.IsPostBack)
    {
        this.tmrReloadByReq.ID = Guid.NewGuid().ToString();
        PopulateControlWithData();
        
        // Ersätter bilder för byte av state
        AddPrefixToStateSelectors();
    }
}


/// <summary>
/// Ny egenskap, ImgPrefix.
/// </summary>
public string ImgPrefix
{
    get;
    set;
}

private void SetStateImagesUrl()
{
    this.imgStatus.ImageUrl = GetDeviceStateImagePath();
    this.btnStatus.ImageUrl = imgStatus.ImageUrl;

    // Hämtar prefix som satts i webbsidan...
    if (this.Device != null && !String.IsNullOrEmpty(ImgPrefix))
    {
        this.imgStatus.ImageUrl = this.imgStatus.ImageUrl.ToLower().Replace("img/", "img/" + ImgPrefix);
        this.btnStatus.ImageUrl = this.btnStatus.ImageUrl.ToLower().Replace("img/", "img/" + ImgPrefix);
    }
}

/// <summary>
/// Lägger på prefix på bildernas sökväg
/// </summary>
protected void AddPrefixToStateSelectors()
{
    if (this.Device == null)
        return;

    if (String.IsNullOrEmpty(ImgPrefix))
        return;

    this.imgAsScheduled.ImageUrl = imgAsScheduled.ImageUrl.ToLower().Replace("img/", "img/" + ImgPrefix);
    this.imgDim10.ImageUrl = imgDim10.ImageUrl.ToLower().Replace("img/", "img/" + ImgPrefix);
    this.imgDim20.ImageUrl = imgDim20.ImageUrl.ToLower().Replace("img/", "img/" + ImgPrefix);
    this.imgDim30.ImageUrl = imgDim30.ImageUrl.ToLower().Replace("img/", "img/" + ImgPrefix);
    this.imgDim40.ImageUrl = imgDim40.ImageUrl.ToLower().Replace("img/", "img/" + ImgPrefix);
    this.imgDim50.ImageUrl = imgDim50.ImageUrl.ToLower().Replace("img/", "img/" + ImgPrefix);
    this.imgDim60.ImageUrl = imgDim60.ImageUrl.ToLower().Replace("img/", "img/" + ImgPrefix);
    this.imgDim70.ImageUrl = imgDim70.ImageUrl.ToLower().Replace("img/", "img/" + ImgPrefix);
    this.imgDim80.ImageUrl = imgDim80.ImageUrl.ToLower().Replace("img/", "img/" + ImgPrefix);
    this.imgDim90.ImageUrl = imgDim90.ImageUrl.ToLower().Replace("img/", "img/" + ImgPrefix);
    this.imgOff.ImageUrl = imgOff.ImageUrl.ToLower().Replace("img/", "img/" + ImgPrefix);
    this.imgOn.ImageUrl = imgOn.ImageUrl.ToLower().Replace("img/", "img/" + ImgPrefix);
}
Martin | http://www.switchking.se
Testa Switch King Pro i din Android/iPhone/iPod: http://www.switchking.se/sv/demo
grahnen
Posts: 38
Joined: Fri Mar 17, 2023 9:45 am

Re: Switch King Pro

Post by grahnen »

Perfekt, fungerar. tack!
tenold
Posts: 32
Joined: Fri Mar 17, 2023 9:45 am

Styring av IR med SwitchKing

Post by tenold »

Tänkte att detta ämne kunde vara aktuellt även i denna tråden

http://www.telldus.se/forum/viewtopic.php?f=2&t=1011
grahnen
Posts: 38
Joined: Fri Mar 17, 2023 9:45 am

Re: Switch King Pro

Post by grahnen »

IMG

Så nu är det bara några små saker kvar att kolla upp.
Få till så att "popupmenyerna" alltid överlappar iconer som är på planlösningen. Se källarbilden.
Någon tuff skugga på popupmenyerna.

Efter detta så får jag försöka fixa en länk ifall någon annan vill använda designen.
Last edited by grahnen on Sun Oct 24, 2010 8:03 pm, edited 1 time in total.
grahnen
Posts: 38
Joined: Fri Mar 17, 2023 9:45 am

Re: Switch King Pro

Post by grahnen »

Nu är skugga fixad men jag får inte ordning på att menyerna alltid är ontop.
Har förstått att man ska använda något som heter z-index: 999 typ. Men vilken div det ska in på är jag lite fundersam över.

Code: Select all

            <div id="Device1" style="position: absolute; top: 310px; left: 450px;">
                <switchKing:DeviceControl ID="DeviceControl1" runat="server" DeviceName="Bel. Hall D6" />
            </div>
            <div id="Device2" style="position: absolute; top: 400px; left: 545px;">
                <switchKing:DeviceControl ID="DeviceControl2" runat="server" DeviceName="Bel. Trapp D7" />
            </div>
Om jag inte är helt ute och cyklar så är det omöjligt så som jag tänkt då popup div:en skapas i ikon div:en som jag förstår det. Enda sättet jag kan komma på är om man löser det så popup div:en skapas parallet med ikon div:en och där med kan man använda z-index: 999 så den överskrider alla ikon div:ar?

Scenario ändring, är det något som är implementerat via webstyrning?
MartinV
Posts: 277
Joined: Fri Mar 17, 2023 9:45 am
Contact:

Re: Switch King Pro

Post by MartinV »

grahnen wrote:[...]Har förstått att man ska använda något som heter z-index: 999 typ. Men vilken div det ska in på är jag lite fundersam över.

Code: Select all

            <div id="Device1" style="position: absolute; top: 310px; left: 450px;">
                <switchKing:DeviceControl ID="DeviceControl1" runat="server" DeviceName="Bel. Hall D6" />
            </div>
            <div id="Device2" style="position: absolute; top: 400px; left: 545px;">
                <switchKing:DeviceControl ID="DeviceControl2" runat="server" DeviceName="Bel. Trapp D7" />
            </div>
[...]
Det går att fixa i kod bakom skalet, typ att man ändrar z-index för lagret när man klickar och ställer tillbaka det när man stänger listan med kommandon.
Idag har ju alla div:ar samma z-index.

Det enklaste, som jag tror bör fixa ditt problem, är att du byter ordning i HTML-filen på dina två div:ar som spökar.
I ditt exempel ovan, skulle det alltså bli:

Code: Select all

            <div id="Device2" style="position: absolute; top: 400px; left: 545px;">
                <switchKing:DeviceControl ID="DeviceControl2" runat="server" DeviceName="Bel. Trapp D7" />
            </div>
             <div id="Device1" style="position: absolute; top: 310px; left: 450px;">
                <switchKing:DeviceControl ID="DeviceControl1" runat="server" DeviceName="Bel. Hall D6" />
            </div>
Detta bör fungera eftersom alla div:ar har samma z-index från början. När du klickar på ikonen för "Bel. Trapp D7" så att kommandofönstret öppnas så kommer kommandofönstret att täcka över ikonen för "Bel. Hall D6". :wave:
grahnen wrote:[...]Scenario ändring, är det något som är implementerat via webstyrning?
Nej, det är ingen som har efterfrågat det tidigare 8)
Martin | http://www.switchking.se
Testa Switch King Pro i din Android/iPhone/iPod: http://www.switchking.se/sv/demo
grahnen
Posts: 38
Joined: Fri Mar 17, 2023 9:45 am

Re: Switch King Pro

Post by grahnen »

Om det ändå bara var två som strulade :banghead: . Jag var inne på ett tag att gå från höger till vänster och börja längst ner på sidan när jag placerar ut devices. Men det blir lätt snurrigt när man kommpleterar med fler devices.

Ang scenario. Så vore det kanon om man kunde aktivera dessa med, precis som via iphone sidan.

Tanken är en touchplatta i hallen på sikt och förhoppningsvis få in lite information från ett 1wire nät att visas där med t.ex energiförbrukning, temperaturer inne/ute, Larmaktiverat.
MartinV
Posts: 277
Joined: Fri Mar 17, 2023 9:45 am
Contact:

Re: Switch King Pro

Post by MartinV »

Vi börjar väl med att lägga kommandofönstret högst upp...

(för övriga intresserade så bakar jag in detta i nästa version av webbtillägget)

I filen "Default.aspx" måste vi lägga till ett attribut på varje "div" där du har definierat dina enheter - runat="server".

Code: Select all

<div id="Device1" style="position: absolute; top: 310px; left: 450px;" runat="server">
     <switchKing:DeviceControl ID="DeviceControl1" runat="server" DeviceName="Bel. Hall D6" />
</div>
<div id="Device2" style="position: absolute; top: 400px; left: 545px;" runat="server">
     <switchKing:DeviceControl ID="DeviceControl2" runat="server" DeviceName="Bel. Trapp D7" />
</div>
I filen DeviceControl.ascx.cs måste först en ny rad in högst upp i filen:

Code: Select all

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using SwitchKing.Common.Entities;
using System.Configuration;
using System.Web.UI.HtmlControls; // Ny rad
Lite längre ner måste två rader läggas till i två metoder:

Code: Select all

protected void StatusImg_Click(object sender, ImageClickEventArgs e)
{
    this.pnlImgAndButtons.Visible = true;
    this.pnlImgOnly.Visible = false;

    // Ny rad... Lägger till z-index när man öppnar kommandorutan
    ((HtmlGenericControl)this.pnlImgAndButtons.Parent.Parent).Style.Add("z-index", "999");
}

protected void CloseImg_Click(object sender, ImageClickEventArgs e)
{
    this.pnlImgAndButtons.Visible = false;
    this.pnlImgOnly.Visible = true;

    // Ny rad... Tar bort z-index när man stänger kommandorutan
    ((HtmlGenericControl)this.pnlImgAndButtons.Parent.Parent).Style.Remove("z-index");
}
Martin | http://www.switchking.se
Testa Switch King Pro i din Android/iPhone/iPod: http://www.switchking.se/sv/demo
grahnen
Posts: 38
Joined: Fri Mar 17, 2023 9:45 am

Re: Switch King Pro

Post by grahnen »

Image

Så, skickade upp filerna HIT så länge.

De ändringar jag gjort kan säkert städas rätt så rejält då asp inte är min grej :help: .
Planlösningen är gjord på http://www.floorplanner.com (kostar pengar) eller så gör man en ritning utan att kunna spara eller exportera, printscreen...
westlund
Posts: 2
Joined: Fri Mar 17, 2023 9:45 am

Re: Switch King Pro

Post by westlund »

Riktigt snyggt!

Är det mycket som behöver fixas när man plockat ner dina filer eller räcker det att sätta upp en ny webpool på iis:en?
Det som strular för mig är att jag får error 500, kör iof server 2008 64bit men ändrade till 32bitarsläge på poolen.

Har du några tips får du gärna höra av dig.

MVH

Fredrik
MartinV
Posts: 277
Joined: Fri Mar 17, 2023 9:45 am
Contact:

Re: Switch King Pro

Post by MartinV »

westlund wrote:Det som strular för mig är att jag får error 500, kör iof server 2008 64bit men ändrade till 32bitarsläge på poolen.
Om man slår på visning av felen i IIS så brukar man få ett tydligare felmeddelande.
Du hittar mer info om detta under "Felsökning" långt ner på denna sida:
http://www.switchking.se/sv/installera- ... ten-pa-whs

Ett 500-fel brukar också leda till en notering i serverns loggbok, som förhoppningsvis ger ett tydligare felmeddelande.
Martin | http://www.switchking.se
Testa Switch King Pro i din Android/iPhone/iPod: http://www.switchking.se/sv/demo
grahnen
Posts: 38
Joined: Fri Mar 17, 2023 9:45 am

Re: Switch King Pro

Post by grahnen »

westlund wrote:
Är det mycket som behöver fixas när man plockat ner dina filer eller räcker det att sätta upp en ny webpool på iis:en?
Nu kör inte jag iis utan cassini men det ska bara vara och kopiera/ersätt rakt in över switchkings medföljande standard sida.
MartinV
Posts: 277
Joined: Fri Mar 17, 2023 9:45 am
Contact:

Re: Switch King Pro

Post by MartinV »

grahnen wrote:
westlund wrote:
Är det mycket som behöver fixas när man plockat ner dina filer eller räcker det att sätta upp en ny webpool på iis:en?
Nu kör inte jag iis utan cassini men det ska bara vara och kopiera/ersätt rakt in över switchkings medföljande standard sida.
Huvudproblemet var att westlund inte fått med sig alla filer - det saknades några. Dessutom var det, i vanlig ordning, lite stök och bök med IIS7.5, men det löste sig :)
Martin | http://www.switchking.se
Testa Switch King Pro i din Android/iPhone/iPod: http://www.switchking.se/sv/demo
Post Reply