Help with Dynamic Dashboard Application

I have been developing in Flex for a few months now. I have
created a dynamic Dashboard/Mashup application using Flex. However,
I have one small problem. As new sub-applications are made
available for this application, I have to edit the MXML files and
recompile. I am wondering if anyone has any good ideas on how to
facilitate this type of dynamic application/sub-application
architecture.
Right now, I basically have 3 sub-applications - let's call
them App1 (App1.mxml) which is a DataGrid, App2 (App2.mxml) which
is a Line Chart, and App3 (App3.mxml) which is a Pie Chart. A user
can put one, two, or all three sub-applications on the page, so it
has to be built dynamically. I retrieve their layout from the
database via a WebService, then loop through the collection of
sub-applications they have saved. To accomplish this, I do
somethign similar to what is displayed in the attached code.
This works exactly how I need it to. However, if I want to
create a new sub-application - say App4 as an Advanced DataGrid - I
have to edit this code to add a new Case statement for it, and then
recompile. I'd like to avoid that.
Any help would be greatly appreciated.
Thanks.

This may be more than you are looking for, but try looking at
an Abstract Factory pattern to produce variations of the same
object. See "Head First Design Patterns" for a good implementation
example or for advanced implementations with other design patterns
see "Core J2EE Patterns: Best Practices and Design Strategies,
Second Edition".
The Cannon of Object Oriented Design has three tenents:
Inheritance, Encapsulation and Polymorphism. Using design patterns
to solve OO problems such as what you describe will unleash the
real power behind AS3. If you already understand what I'm speaking
about, then please accept my apologies. Because of the question,
I'm unsure as to your qualifications in OO design.
Another way to do this might be create an interface and
implement it within all your child classes. Then code using the
interface instead of the implementation. In java, (and it should
work the same in AS3) by supplying the concrete class name to
instantiate at runtime, and then invoking the methods of the
interface, you have designed in polymorphic behaviors for runtine
vs. compiletime. I have yet to do this in AS3, so hopefully, it
should work the same.
Cheers,

Similar Messages

  • I need help with a VB Application

    I need help with building an application and I am on a tight deadline.  Below I have included the specifics for what I need the application to do as well as the code that I have completed so far.  I am having trouble getting the data input into
    the text fields to save to a .txt file.  Also, I need validation to ensure that the values entered into the text fields coincide with the field type.  I am new to VB so please be gentle.  Any help would be appreciated.  Thanx
    •I need to use the OpenFileDialog and SaveFileDialog in my application.
    •Also, I need to use a structure.
    1. The application needs to prompt the user to enter the file name on Form_Load.
    2. Also, the app needs to use the AppendText method to write the Employee Data to the text file. My project should allow me to write multiple Employee Data to the same text file.  The data should be written to the text file in the following format (comma
    delimited)
    FirstName, MiddleName, LastName, EmployeeNumber, Department, Telephone, Extension, Email
    3. The Department dropdown menu DropDownStyle property should be set so that the user cannot enter inputs that are not in the menu.
    Public Class Form1
    Dim filename As String
    Dim oFile As System.IO.File
    Dim oWrite As System.IO.StreamWriter
    Dim openFileDialog1 As New OpenFileDialog()
    Dim fileLocation As String
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    openFileDialog1.InitialDirectory = "c:\"
    openFileDialog1.Filter = "Text files (*.txt)|*.txt|All files (*.*)|*.*"
    openFileDialog1.FilterIndex = 1
    openFileDialog1.RestoreDirectory = True
    If openFileDialog1.ShowDialog() = System.Windows.Forms.DialogResult.OK Then
    fileLocation = openFileDialog1.FileName
    End If
    'filename = InputBox("Enter output file name")
    'oWrite = oFile.CreateText(filename)
    cobDepartment.Items.Add("Accounting")
    cobDepartment.Items.Add("Administration")
    cobDepartment.Items.Add("Marketing")
    cobDepartment.Items.Add("MIS")
    cobDepartment.Items.Add("Sales")
    End Sub
    Private Sub btnSave_Click(ByValsender As System.Object, ByVal e As System.EventArgs) Handles btnSave.Click
    'oWrite.WriteLine("Write e file")
    oWrite.WriteLine("{0,10}{1,10}{2,10}{3,10}{4,10}{5,10}{6,10}{7,10}", txtFirstname.Text, txtMiddlename.Text, txtLastname.Text, txtEmployee.Text, cobDepartment.SelectedText, txtTelephone.Text, txtExtension.Text, txtEmail.Text)
    oWrite.WriteLine()
    End Sub
    Private Sub btnExit_Click(ByValsender As System.Object, ByVal e As System.EventArgs) Handles btnExit.Click
    oWrite.Close()
    End
    End Sub
    Private Sub btnClear_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnClear.Click
    txtFirstname.Text = ""
    txtMiddlename.Text = ""
    txtLastname.Text = ""
    txtEmployee.Text = ""
    txtTelephone.Text = ""
    txtExtension.Text = ""
    txtEmail.Text = ""
    cobDepartment.SelectedText = ""
    End Sub
    End Class

    Hi Mikey81,
    Your issue is about VB programming, so Visual Basic forum is a better forum for your case. I moved this thread there,
    Thanks,
    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click
    HERE to participate the survey.

  • Need help with a small application

    Hi all, I please need help with a small application that I need to do for a homework assignment.
    Here is what I need to do:
    "Write an application that creates a frame with one button.
    Every time the button is clicked, the button must be changed
    to a random color."
    I already coded a part of the application, but I don't know what to do further.
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    public class ColourButton extends JFrame {
         JButton button = new JButton("Change Colour");
         public ColourButton() {
              super ("Colour Button");
              setSize(250, 150);
              setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
              JPanel panel = new JPanel();
              panel.add(button);
              add(panel);
              setVisible(true);
         public static void main(String[] args) {
              ColourButton cb = new ColourButton();
    }The thing is I'm not sure what Event Listener I have to implement and use as well as how to get the button to change to a random color everytime the button is clicked.
    Can anyone please help me with this.
    Thanks.

    The listener:
    Read this: [http://java.sun.com/docs/books/tutorial/uiswing/components/button.html]
    The random color:
    [Google this|http://www.google.com/search?q=color+random+java]

  • Is it possible to make a search help with dynamic  selection table?

    Hi Experts,
    Is it possible to create search helps with dynamic seletion tables means
    i dont know the selection table names at the time of creation of search help.
    These tables will be determined at runtime.
    if yes, Please give an idea how to create and pass the table names at runtime.
    Thanks
    Yogesh Gupta

    Hi Yogesh,
    Create and fill your itab and show it with FM F4IF_INT_TABLE_VALUE_REQUEST
      CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
        EXPORTING
          retfield        = 'field to return from itab'
          dynpprog        = sy-repid
          dynpnr          = sy-dynnr
          dynprofield     = 'field on your screen to be filled'
          stepl           = sy-stepl
          window_title    = 'some text'
          value_org       = 'S'
        TABLES
          value_tab       = itab
        EXCEPTIONS
          parameter_error = 1
          no_values_found = 2
          OTHERS          = 3.
    Darley

  • I need help with the Web Application Certificate

    Greets,
    The title says it all really. I need help with the Web Application Certificate.
    I've followed the instructions from here:
    https://www.novell.com/documentation....html#b13qz9rn
    I can get as far as item 3.c
    3. Getting Your Certificate Officially Signed
    C. Select the self-signed certificate, then click File > Certification Request > Import CA Reply.
    I can get the certificate in to the Filr appliance but from there I'm stuck.
    Any help much appreciated.

    Originally Posted by bentinker
    Greets,
    The title says it all really. I need help with the Web Application Certificate.
    I've followed the instructions from here:
    https://www.novell.com/documentation....html#b13qz9rn
    I can get as far as item 3.c
    ok when you have you self signed certificate and you requested an official certificate with the corresponding CSR then you just need to go back to the digital certificates console. To import the official certificate, select the self signed certificate, then click File > Certification Request > Import CA Reply. Then a new windows pops out to select the certificate from your trusted authority from your local hard disk. Find the file (.cer worked for me) and click ok. As soon as you do this in the digital certificates console the self signed certificate will change the information that now it is officially signed. Look at the second column and you should see the name of your trusted authority under "issue from"
    I personally had a lot of issues across all platforms. Especially Firefox and Chrome for android. Needed to pack all the root cert, intermediate cert and signed cert into one file and import as CA reply. Not even sure if this is correct now. But at least it works.

  • Help with dynamic page layouts

    Hello JSP Gurus,
    I'm attempting to dynamically generate the page layout for my site based on the organization a user belongs to. Basically, I'd have certain resources like navigation links, graphics, etc, that are modular. Then I'd like to construct the layout using these "moduls" in a dynamic fashion. Does anyone have any suggestions on techniques or technologies that would be useful? I'm not really looking at the portal/portlet model. Is this something that Cocoon could do by storing the layout for each customer as an XML file or something? Any ideas, suggestions, experiences would be helpful.
    Thanks!

    How does Tiles differ from the JetSpeed apache
    project? They both appear to be portal-like
    frameworks, or am I incorrect about that? Which is
    preferred?Frankly, I can't give you an in-depth answer to that. Maybe someone else can help with more details.
    What I can tell you is that JetSpeed seems to be more of a real portal architecture. Emphasis is placed on the framework portion, interfacing with exisiting applications. Visual layout takes second seat to this.
    Tiles on the other hand puts more emphasis on visual layout and reuse.
    Just looking at JetSpeed's visual interfacing a little bit makes me really dislike it. You build tables and such inside of a servlet, so there's a tight coupling (or at least, much tighter than with Struts/Tiles) between the presentation and logic. (I'm basing this on a JavaWorld article at
    http://www.javaworld.com/javaworld/jw-07-2001/jw-0727-jetspeed.html )
    Based on your initial question, it would seem to me that tiles is much closer to what you're looking for (and likely easier to just pick up and use).
    Anyway, take all this with a grain of salt; I'm not exactly an expert on JetSpeed. =)

  • Need help with Dynamic Excel File Name please.

    I am try to output an excel file with dynamic date. 
    Here what I done.
    I am using SQL 2012.
    Create Execute SQL Task Connect Type: Excel
    Create Data Flow Task set to DelayValidation: True
    Create OLE DB Sourc
    Create Data Converstion
    Excel Destination
    Excel Connection, Expression, select ExcelFilePath
    @[User::sXLFilePath] +  @[User::sFileName] + RIGHT("0" + (DT_WSTR, 2) DATEPART("DD", GETDATE()), 2)+ RIGHT("0" + (DT_WSTR, 2) DATEPART("MM", GETDATE()), 2) + RIGHT((DT_WSTR,
    4) DATEPART("YYYY", GETDATE()), 2) +".csv"
    C:\ExcelOutPut\SOX_CAM_SQL_Report_010215.xls
    What I try to accomplish is output the file with each day append to it, date must be DDMMYY.
    I google it and found many samples, tested it, and none of them is work for me. 
    Any suggestions or some examples to share is greatly appreciate. 
    I am new to SSIS.  I found one poster have similar issue and inside the posted below, there was one suggestion to create variable and connection string but how do I bind that variable to Excel Connection manger.
    Please help.
    Thank you so much in advance.
    Ex: SOX_CAM_SQL_Report _020215.csv
           SOX_CAM_SQL_Report _030215.csv
    --Similar issue:
    https://social.msdn.microsoft.com/Forums/en-US/bda433aa-c8f8-47c9-9e56-efd20b8354ac/creating-a-dynamic-excel-file?forum=sqlintegrationservices
    Suggestion in the above posted but where can bind this to Excel Connection Manger. 
    Please help provide step by step.  Thanks.
    "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\\temp\\" + "ExcelTarget" + (DT_WSTR,4)DATEPART("yyyy",GETDATE())  +
    ".xls" + ";Extended Properties=\"EXCEL 8.0;HDR=YES\";"
    And yes, as you were intimating, the delay validation on the dataflow should be set.

    Hi NguyenBL,
    According to your description, you created ssis package to export data from database to excel, when the package runs, you want to create new excel and name the file with time stamp. If that is the case, we can achieve the goal by following steps:
    Create a script task used to create excel files.
    Create a data flow task to export data from database to excel.
    Add OLE DB source to data flow task.
    Add Excel Destination to data flow task.
    Create connection manager for OLE DB and Excel.
    Click Excel Connection Manager, in Properties window, click (…) button next to Expressions, then set ExcelFilePath with expression like below:
    "C:\\ETL Lab\\CreateNewExcel\\ExportData_"+REPLACE((DT_STR, 20, 1252)(DT_DBTIMESTAMP)@[System::StartTime], ":", "")+".xls"
    For detail information, please refer to the document:
    https://sqljourney.wordpress.com/2013/01/12/ssis-create-new-excel-file-dynamically-to-export-data/
    If you have any more questions, please feel free to ask.
    Thanks,
    Wendy Fu
    Wendy Fu
    TechNet Community Support

  • Help with dynamic text and and css !

    My second question of the day.
    I'm trying to build a feature in my app in which the user can
    hide/reveal
    bolding and or
    italics and or
    underlining. The text is being loaded in from an xml file
    and I was thinking about styling it with css in order to get the
    underlining. My problem is that the only way I can think about
    pulling this off is to have a css style sheet that has a defined
    bold,italic and underline class defined- - then another one that
    just has a italic and underline class defined -- then another one
    that has just a bold and underline class defined . . . and so on
    and so on. You can see why I would prefer a much more streamlined
    system. Unfortunately my experience with dynamic text styling is
    somewhat limited. Hopefully someone can help me out here.

    Perfect. I knew it was some little snippet that I was
    forgetting. I made a temporary fix of creating a 0% alpha box over
    the button like a fake click area above the text, and that worked
    but I know that it was a half-arsed way of working around it.
    Thanks.

  • I've just came on board from Andriod and need massive help with the Contacts application any one out there willing to help the 'noob'?

    I had the folks at the store port over all of my contacts from my old
    ratty Andriod phone to my new shiny iPhone.
    however all 200+ of my contacts sort of "shook" out,
    meaning say John Smith, on my old phone,
    had in my contacts the following:
    John Smith
    123 Main St. Anytown, Anystate USA
    555-826-4879 home
    555-799-4247 cell
    [email protected]
    johnsmith@facebook
    all nice and neat on my andriod but when it ported over
    all that information was just scattered all over my contacts sort of like:
    john smith, smith john
    john smith 123 main st. etc.
    johhn smith home 555 etc.
    john smith cell 555 etc.
    john smith johnsmith@ etc.
    etc.
    so for all those 200+ contacts in my phone, I've got a zillion of them now...
    so I'd like to get this all back in order before I and Siri explode.
    I know nothing, and I know even less about outlook and the sort.
    But I do know I am in Dire need of help with this... I figured that eveything else
    involving iphones and apple in general was supposed to be cake but it seems
    like this is the only thing that isn't cake at all... unless, I'm just a right idiot. (which is possible, hence spelling and grammatical issues).

    I believe I've tried to sync it with google, but it didn't seem to take
    muchless take my calender. it seems to favor my facebook calender
    more over my google calender, but Siri seems to be helping me re-write
    it...but that's not the game here, it's the contacts. I've tried to export
    the cvp (??) list and import it into my iTunes account. However, It only
    doubled my issue because it didn't over write my existing contacts.

  • URGENT: Help with dynamic borders!

    Hello all -
    I DESPERATLY need help with this! I am using the code from
    kirupa's xml photo gallery with the thumbnails. right now the alpha
    changes on mouseover, fine...but my client is demanding that it
    draw a border instead. I have been at this for about a week and
    have NO idea how to do this...i have looked at things like API's
    and things...but my main issue is that the images and MC's are all
    created on the fly and i dont know how to code in an on mouseover
    draw a border type of function, no idea at all!
    This is my code as it sits now, PLEASE SOMEONE HELP ME!!!
    thank you in advance!

    really could use some help quick here guys

  • Help with dynamic statement returning values into collection

    Hi All
    I am trying to use dynamic statement to return values into a collection using the returning clause. However, I get an ORA-00933 error. Here is a simple setup:
    create table t(
        pk number,
        id_batch varchar2(30),
        date_created date,
        constraint t_pk primary key ( pk )
    create or replace type num_ntt is table of number;
    create or replace type vc2_ntt is table of varchar2(30);
    create or replace
    package pkg
    as
      type rec is record(
          pk        num_ntt,    
          id_batch  vc2_ntt
      procedure p(
          p_count in number,
          p_rt    out nocopy rec
    end pkg;
    create or replace
    package body pkg
    as
      procedure p(
          p_count in number,
          p_rt    out nocopy rec
      is
      begin
          execute immediate '
          insert into t
          select level, ''x'' || level, sysdate
          from   dual
          connect by level <= :p_count
          returning pk, id_batch into :pk, :id_batch'
          using p_count returning bulk collect into p_rt.pk, p_rt.id_batch;
      end p;
    end pkg;
    declare
      r  pkg.rec;
    begin
      pkg.p( 5, r );
    end;
    /

    sanjeevchauhan wrote:
    but I am working with dynamic statement and returning multiple fields into a collection.And using an INSERT...SELECT statement combined with a RETURNING INTO clause still does not work. Whether it's dynamic SQL or not: it doesn't work. The link describes a workaround.
    By the way, I don't see why you are using dynamic SQL here. Static SQL will do just fine. And so you can literally copy Adrian's setup.
    Regards,
    Rob.

  • Can someone help with this simple application

    I am taking my first java class and there are limited resourses for the class as far as getting help with coding.
    Any hoo if any one can point me in the correct direction from the following information listed below I would be greatfull. I am trying to use the set and get methods on the instance veriables and then I am goign to post the results once I get them workign to a JOption pane window.
    examples are most welcome thanks
    // Invoice.java
    // Homework assignment 3.13
    // Student Arthur Clark
    public class Invoice // public class
    String partNumber;// instance veriable quantity
    String partDescription;// instance verialbe partDescription
    //constructors
    public void setpartNumber( String number, String description )
              partNumber = number; //initalize quantity
              partDescription = description; // initalize partDescription
         }// end constructors
    //method getpartNumber
    public String getpartNumber()
              return partNumber;
         }//end method getpartNumber
    public String getpartDescription()
              return partDescription;
         }// end method getpartDescription
    public void displayMessage()
         //this is the statement that calls getpartNumber
         System.out.printf(" part number # \n%s!\n the description", getpartNumber(), getpartDescription() );
    } // method displaMessage
    }// end method main
    // Fig. 3.14 InvoiceTest.java
    // Careate and manipulate an account object
    import java.util.Scanner;
    import javax.swing.JOptionPane;//import JOptionPane
    public class InvoiceTest{
         // main method begins the exciution of the program
         public static void main ( String args [] )
              // create Scanner to obtain input from mommand window
              Scanner input = new Scanner ( System.in );
              // create a Invoice object and assig it to mymethod
              Invoice myMethod = new Invoice();
              Invoice myMethod2 = new Invoice();
              // display inital value of partName, partDescriptoin
              System.out.printf( "inital partname is %s\n\n", myMethod.getpartNumber() );
              // prompt for and read part name, partDescription
              System.out.println( "please enter the Part Number:" );
              String theNumber = input.nextLine(); // read a line of text
              myMethod.setpartNumber( theNumber ); // set the part name with in the parens
              System.out.println();// outputs blank line
              myMethod.displayMessage();
              System.out.println( "please enter the Part Description" );
              String theDescription = input.nextLine(); // read a line of text
              myMethod2.setpartDescription( theDescription );// set the part description
              System.out.println();// outputs blank line
              myMethod2.displayMessage();
         }// end main mehtod
    }// end class

    //constructors
    public void setpartNumber( String number, String description )
              partNumber = number; //initalize quantity
              partDescription = description; // initalize partDescription
         }// end constructorsThe above code is not a constructor. You do not include a return type, void or anything else. Also, the constructor should be called the same as your class.
    public Invoice( String number, String description )
              partNumber = number;
              partDescription = description;
         } Another thing, comments should only be used when it isn't bleedingly obvious what your code is doing.
    P.S. is your middle initial C?

  • Help with dynamic SQL

    Hello,
    I have the following function that works ok:
    CREATE OR REPLACE FUNCTION Get_Partition_Name (sTable VARCHAR2, iImportIndex INTEGER)
    RETURN VARCHAR2 IS
    cursor c is select A.partition_name from (select table_name, partition_name,
    extractvalue (
    dbms_xmlgen.
    getxmltype (
    'select high_value from all_tab_partitions where table_name='''
    || table_name
    || ''' and table_owner = '''
    || table_owner
    || ''' and partition_name = '''
    || partition_name
    || ''''),
    '//text()') import_value from all_tab_partitions) A where table_name = sTable and A.import_value = iImportIndex;
    sPartitionName VARCHAR(20);
    err_num NUMBER;
    BEGIN
    open c;
    fetch c into sPartitionName;
    IF c%ISOPEN THEN
    CLOSE c;
    END IF;
    RETURN sPartitionName;
    EXCEPTION
    WHEN OTHERS THEN
    err_num := SQLCODE;
    --save error in log table
    LOG.SAVELINE(SQLCODE, SQLERRM);
    END Get_Partition_Name;
    I am trying to replace the cursor statement with dynamic SQL, something like (see below) but it doesn't work any more; I think I am missing some quotes.
    CREATE OR REPLACE FUNCTION Get_Partition_Name (sTable VARCHAR2, iImportIndex INTEGER)
    RETURN VARCHAR2 IS
    TYPE t1 IS REF CURSOR;
    c t1;
    sSql VARCHAR2(500);
    sPartitionName VARCHAR(20);
    err_num NUMBER;
    BEGIN
    sSql := 'select A.partition_name from (select table_name, partition_name,
    extractvalue (
    dbms_xmlgen.
    getxmltype (
    ''select high_value from all_tab_partitions where table_name=''''
    || table_name
    || '''' and table_owner = ''''
    || table_owner
    || '''' and partition_name = ''''
    || partition_name
    || ''''''),
    ''//text()'') import_value from all_tab_partitions) A where table_name = :a and A.import_value = :b';
    OPEN c FOR sSql USING sTable, iImportIndex;
    fetch c into sPartitionName;
    IF c%ISOPEN THEN
    CLOSE c;
    END IF;
    RETURN sPartitionName;
    EXCEPTION
    WHEN OTHERS THEN
    err_num := SQLCODE;
    --save error in log table
    LOG.SAVELINE(SQLCODE, SQLERRM);
    END Get_Partition_Name;
    Please advise,
    Regards,
    M.R.

    Assuming the requirement is to find the partition in the supplied table with the supplied high value and the issue is that dba/all_tab_partitions.high_value is a long, one alternative along the same lines as you've done already is as follows. (I've just used a cursor rather than a function for simplicity of demo).
    SQL> var r refcursor
    SQL> set autoprint on
    SQL> declare
      2   ctx dbms_xmlgen.ctxhandle;
      3   v_table_name VARCHAR2(40) := 'LOGMNR_USER$';
      4   v_value      NUMBER       := 100;
      5  begin
      6   ctx := DBMS_XMLGEN.NEWCONTEXT
      7          ('select table_name
      8            ,      partition_name
      9            ,      high_value  hi_val
    10            from   dba_tab_partitions
    11            where  table_name     = :table_name');
    12   dbms_xmlgen.setbindvalue(ctx,'TABLE_NAME',v_table_name);
    13   open:r for
    14   with x as
    15   (select xmltype(dbms_xmlgen.getxml(ctx)) myxml
    16    from   dual)
    17   select extractvalue(x.object_value,'/ROW/TABLE_NAME') table_name
    18   ,      extractvalue(x.object_value,'/ROW/PARTITION_NAME') partition_name
    19   ,      extractvalue(x.object_value,'/ROW/HI_VAL') hi_val
    20   from   x
    21   ,      TABLE(XMLSEQUENCE(EXTRACT(x.myxml,'/ROWSET/ROW'))) x
    22   where  extractvalue(x.object_value,'/ROW/HI_VAL') = v_value;
    23  end;
    24  /
    PL/SQL procedure successfully completed.
    TABLE_NAME
    PARTITION_NAME
    HI_VAL
    LOGMNR_USER$
    P_LESSTHAN100
    100
    SQL> I'm sure there are other ways as well. Especially with XML functionality, there's normally many ways to skin a cat.

  • Help with dynamic playlist for mpd

    Hi guys,
    I use mpd with sonata for playing my music, and after trying exaile there is one thing id really like for mpd, and that is the dynamic playlist function.
    When you're playing a song in exaile with dynamic playlist enabled, it queries audioscrobbler and automatically adds similar artists/songs to your playlist (if you have them on your pc).
    I dont want to use exaile as it just feels too big and slow and bloated (not KISS ), i know a little bit of python so i thought i'll try and make my own little script/program as Sonata has audioscrobbler support, but i dont think there is anyway to query similar artists.
    I think im going to try and make this as a daemon type program that will run in the background adding songs to the playlist.
    Ive found the code from the exaile source (audioscrobbler.py) which queries lastfm e.g.
    >>> lips = AudioScrobblerQuery(artist='The Flaming Lips')
    >>> for artist in lips.similar():
    ... print artist.name, artist.mbid
    This will print a list of similar artists to the flaming lips.
    I've not done much with python so i thought this would be a good way to try and improve.
    Does anyone have any suggestions as to what the best way to go about searching and comparing the results to my mpd database, would the best way just to be to search the mpd.db?
    And if anyone else has any ideas/comments id like to hear them.
    Edit:
    I just found this too, so i may only need to change some things to integrate it with mpd rather than amarok
    http://www.kde-apps.org/content/show.php?content=31920
    Thanks
    Last edited by Kane (2008-06-05 13:24:33)

    well i just modified the patch into a little script, it does what i need
    its here if anyone wants it
    import audioscrobbler
    import mpd
    import random
    import time
    lastsong = {}
    def timer_control():
    get_similar()
    time.sleep(10)
    timer_control()
    def get_similar():
    audioscrobbler
    client = mpd.MPDClient()
    client.connect("localhost", 6600)
    mpdstatus = client.status()
    prevsonginfo = client.currentsong()
    global lastsong
    if mpdstatus['state'] == "stop": return
    if prevsonginfo == lastsong: return
    lastsong = prevsonginfo
    similarartists = ""
    song = prevsonginfo
    #if not song: break #No song, do nothing
    prevartist = song['artist']
    # Is the info already cached?
    similar_cache = {}
    if similar_cache.has_key(prevartist):
    similarartists = similar_cache[prevartist]
    else:
    #Not cached so fetch from Audioscrobbler
    try:
    similarartists = [artist.name for artist in audioscrobbler.AudioScrobblerQuery(artist=prevartist).similar()]
    # Cache search results and save some time next search
    similar_cache[prevartist] = similarartists
    except audioscrobbler.AudioScrobblerError:
    similar_cache[prevartist] = None # Empty cache
    return # Do nothing!
    if not similarartists: return # Empty list
    # Split list in half and sort upper half
    # this means good matches will have priority
    # but makes sure artist A does not always result in artist B
    half_idx = len(similarartists)/2
    upperhalf = similarartists[:half_idx]
    lowerhalf = similarartists[half_idx:]
    random.shuffle(upperhalf)
    artistlist = upperhalf
    artistlist.extend(lowerhalf)
    # Try each artist in order
    for artist in artistlist:
    try:
    print "Trying:",artist
    songs = client.search("artist", artist)
    if not songs: continue
    selected_song = random.sample(songs, 1)[0]
    client.add(selected_song['file'])
    print "Added", selected_song['title'],"by",selected_song['artist']
    # Delete old song from playlist?
    break
    except mpd.MPDError, e:
    print "MPDError", e.message
    continue
    except ValueError, e:
    print "ValueError:",e.message
    continue
    timer_control()
    Last edited by Kane (2008-06-06 16:22:49)

  • Help with Dynamic Objects

    Hi All,
    New to Flex and wanted to get some help from the public.
    Basically, here's what I want to do.
    I have a tab navigator with multiple tabs. Each tab has a
    datagrid on it. When you click the tab, the grid should update to
    new data based on the tab clicked. That's no problem. The problem
    I'm running into is that because the data is taking a while to
    retreive from the server, users are getting the previous's tabs
    datagrid until the information is updated. I wanted to do two
    things:
    1) Change the cursor to a "thinking" or "processing" icon
    where clicks can't be done until the full data has been retreived
    and updated. This is a nice to have; i haven't the slightlest clue
    on how to accomplish this.
    2) In lieu/addition to #1, i wanted the datagrid to be
    dynamic. Meaning, if you go to the tab, it'll add dynamically the
    datagrid to the tab and then show the data.
    Here's my code, but it doesn't work very well. Any help i can
    get from you guys would be great:
    <?xml version="1.0" encoding="utf-8"?>
    <mx:Application xmlns:mx="
    http://www.adobe.com/2006/mxml"
    layout="horizontal" initialize="createDataGrid()">
    <mx:Script>
    <![CDATA[
    import mx.controls.DataGrid;
    import mx.managers.PopUpManager;
    import mx.collections.ArrayCollection;
    import mx.controls.Alert;
    import mx.rpc.events.ResultEvent;
    import mx.containers.HBox;
    import mx.containers.TabNavigator;
    [Bindable]
    private var infoDataGrid:ArrayCollection;
    [Bindable]
    private var currentID:String;
    [Bindable]
    private var dynDataGrid:DataGrid;
    private function createDataGrid():void {
    dynDataGrid = new DataGrid;
    dynDataGrid.dataProvider=infoDataGrid;
    dynDataGrid.width=80;
    private function getDataFromServer(event:ResultEvent):void {
    var numOfRecords:int = event.result.result_set.num_rows;
    if (numOfRecords > 0 ) {
    infoDataGrid = event.result.result_set.results.result as
    ArrayCollection;
    } else {
    // no information retrieved worry about this later
    private function mainBuilder( event:Event ):void {
    var tabNavigator:TabNavigator = TabNavigator( event.target
    var pattern:RegExp = /\D/gi;
    if (tabNavigator.selectedChild.id != "NewTab") {
    // Remove all non-digits from LID
    var str:String = tabNavigator.selectedChild.id;
    currentID=(str.replace(pattern, ""));
    phpHTTPService.send();
    // loop through all children and remove any datagrids while
    adding to the current one
    for (y=0; y<tabNavigator.numChildren; y++) {
    var tmpNavID:String = tabNavigator.childDescriptors[y].id
    if ((tmpNavID == tabNavigator.selectedChild.id) &&
    (tmpNavID != "")) {
    // this does not work as intended...
    tabNavigator.selectedChild.addChild(dynDataGrid);
    } else {
    // this does not work.
    //How do you access something directly with an ID but
    represented by a variable?
    // tmpNavID.removeChildAt(0);
    } else {
    // New Tab selected, do something here
    ]]>
    </mx:Script>
    <mx:HTTPService id="phpHTTPService"
    url="/flex/php/AssetsInLocation.php" useProxy="false" method="GET"
    result="getDataFromServer(event)">
    <mx:request xmlns="">
    <lid>{currentID}</lid>
    </mx:request>
    </mx:HTTPService>
    <mx:TabNavigator id="tabNav"
    creationComplete="tabNav.selectedIndex=0;mainBuilder(event)"
    width="100%" change="mainBuilder(event);">
    <mx:HBox id="LID2345" label="Tab 1" width="100%"
    height="100%" horizontalAlign="center">
    <!-- <mx:DataGrid dataProvider="{infoDataGrid}"
    width="80%"/> -->
    </mx:HBox>
    <mx:HBox id="LID1111" label="Tab 2" width="100%"
    height="100%" horizontalAlign="center">
    <!-- <mx:DataGrid dataProvider="{infoDataGrid}"
    width="80%"/> -->
    </mx:HBox>
    <mx:HBox id="LID1234" label="Tab 3" width="100%"
    height="100%" horizontalAlign="center">
    <!-- <mx:DataGrid dataProvider="{infoDataGrid}"
    width="80%"/> -->
    </mx:HBox>
    <mx:Canvas id="NewTab" label="New..." width="100%"
    height="100%">
    </mx:Canvas>
    </mx:TabNavigator>
    </mx:Application>
    Thanks all for your assistance.

    I think Ned is on the right track, but the specific form of
    the command may be off. If the ProgressEvent handler is defined on
    MC_Holder_Image, then the command to get the
    MC_Holder_Preload_TextField object should be something like:
    var oTextField:TextField =
    this.parent.parent.MC_Holder_Preload.getChildByName(childname);
    oTextField.text = "some text";
    The first "parent" references MC_Holder_Sprite, the second
    MC_Holder. If there are several instances of MC_Holder_Preload,
    then the above would have to be modified to account for that by
    first using the getChildByName method to acquire the appropriate
    instance like so:
    var oMC:MovieClip =
    this.parent.parent.getChildByName(HolderPreloadName);
    var oTextField:TextField = oMC.getChildByName(TextFieldName);
    Hope this (a) makes sense, (b) helps and (c) actually works.
    Regards
    Dave Spaar

Maybe you are looking for

  • Specific PDFs not displaying

    On [this page|http://www.conservation.ca.gov/cgs/geologichazards/Tsunami/InundationMaps/SantaCruz/Pages/SantaCruz.aspx] there are some PDFs that as far as I can tell will only open in their entirety in Adobe Reader. On the eMac I've tried the Schuber

  • Oracle 10.2.0.4 Patching Process - CPU vs Interim Patches

    Hi everyone, We are getting ready to upgrade our AIX 5.2 - 64bit Oracle 10.2.0.2 systems to Oracle 10.2.0.4. I noted that there was also a single CPU patch available (CPUOct2008_p7375644_10204_AIX5L.zip), as well as a large list of interim patches fo

  • Wireless print server cannot connect to router

    Hi - I just got the FiOS installed.  When I went to set up my print server via wireless, it has failed.  It has previously been connected via Ethernet and worked just fine.  The print server thinks its connect to the AP/router but the FiOS router doe

  • Pages: Can't open document on iPad

    Dear, Yesterday i started a big document on my iPad using pages. After finishing it i could send PDF to an email address. Today i try to edit something but i cant use the document anymore. i dont see an icon of my text but an icon of pages and when i

  • Message cannot be loaded

    Hi, i'm trying to test a message mapping which i created, and imported a xml-Message. If I don't save this message, i can test with it without problems. But as soon as i want to save my testdata, a problem occured and the repository told me: "Message