Search Results

Search found 8075 results on 323 pages for 'report builder'.

Page 62/323 | < Previous Page | 58 59 60 61 62 63 64 65 66 67 68 69  | Next Page >

  • Android AlertDialog with rounded corners: rectangle seen below corners

    - by user1455909
    I want a Dialog with rounded corners, but when the Dialog is seen there's a rectangle below it that's seen below the corners, like this: I build the dialog using a custom DialogFragment: public class MyDialogFragment extends DialogFragment{ @Override public Dialog onCreateDialog(Bundle savedInstanceState) { AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); LayoutInflater inflater = getActivity().getLayoutInflater(); builder.setView(inflater.inflate(R.layout.playdialog, null)); return builder.create(); } } The dialog layout (playdialog) has the following drawable as background: <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" > <solid android:color="#AAAAAAAA" /> <stroke android:width="2dp" android:color="#FF000000" /> <corners android:radius="20dp" /> </shape> As I said, I set this drawable as background: android:background="@drawable/dialog_background" I don't want that rectangle to be seen. How can I do it?? In this post the user had the same problem. I tried to use the solution that worked for him but it didn't work for me. I modified my DialogFragment like this: public Dialog onCreateDialog(Bundle savedInstanceState) { AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); LayoutInflater inflater = getActivity().getLayoutInflater(); builder.setView(inflater.inflate(R.layout.playdialog, null)); Dialog d = builder.create(); d.getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT)); return d; } The result is exactly the same. How can I remove that rectangle? Thanks!

    Read the article

  • Facing Null Pointer Exception while using BIRT

    - by srikanth
    Hi, I am using BIRT APIs in a java program.My code is : package com.tecnotree.mdx.product.utils; import java.util.HashMap; import java.util.logging.Level; import org.eclipse.birt.core.exception.BirtException; import org.eclipse.birt.core.framework.Platform; import org.eclipse.birt.report.engine.api.EngineConfig; import org.eclipse.birt.report.engine.api.EngineConstants; import org.eclipse.birt.report.engine.api.HTMLRenderOption; import org.eclipse.birt.report.engine.api.IReportEngine; import org.eclipse.birt.report.engine.api.IReportEngineFactory; import org.eclipse.birt.report.engine.api.IReportRunnable; import org.eclipse.birt.report.engine.api.IRunAndRenderTask; import org.eclipse.birt.report.engine.api.ReportEngine; public class ExampleReport { public static void main(String[] args) { // Variables used to control BIRT Engine instance ReportEngine eng = null; IReportRunnable design = null; IRunAndRenderTask task = null; HTMLRenderOption renderContext = null; HashMap contextMap = null; HTMLRenderOption options = null; final EngineConfig conf = new EngineConfig(); conf .setEngineHome("C:\\birt-runtime-2_5_2\\birt-runtime-2_5_2\\ReportEngine"); System.out.println("conf " + conf.getBIRTHome()); conf.setLogConfig(null, Level.FINE); try { Platform.startup(conf); } catch (BirtException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } IReportEngineFactory factory = (IReportEngineFactory) Platform .createFactoryObject(IReportEngineFactory.EXTENSION_REPORT_ENGINE_FACTORY); System.out.println("Factory : " + factory.toString()); System.out.println(conf.toString()); IReportEngine engine = factory.createReportEngine(conf); System.out.println("Engine : " + engine); try { design = eng .openReportDesign("C:\\birt-runtime-2_5_2\\birt-runtime-2_5_2\\ReportEngine\\samples\\hello_world.rptdesign"); } catch (Exception e) { System.err .println("An error occured during the opening of the report file!"); e.printStackTrace(); System.exit(-1); } task = eng.createRunAndRenderTask(design); renderContext = new HTMLRenderOption(); renderContext.setImageDirectory("image"); contextMap = new HashMap(); contextMap.put(EngineConstants.APPCONTEXT_HTML_RENDER_CONTEXT, renderContext); task.setAppContext(contextMap); options = new HTMLRenderOption(); options.setOutputFileName("c:/temp/output.html"); options.setOutputFormat("html"); task.setRenderOption(options); try { task.run(); } catch (Exception e) { System.err.println("An error occured while running the report!"); e.printStackTrace(); System.exit(-1); } System.out.println("All went well. Closing program!"); eng.destroy(); } } But i am facing NullPointerException while creating the report. STACKTRACE : Exception in thread "main" java.lang.NullPointerException at org.eclipse.birt.report.engine.api.impl.ReportEngine$EngineExtensionManager.<init>(ReportEngine.java:784) at org.eclipse.birt.report.engine.api.impl.ReportEngine.<init>(ReportEngine.java:109) at org.eclipse.birt.report.engine.api.impl.ReportEngineFactory$1.run(ReportEngineFactory.java:18) at org.eclipse.birt.report.engine.api.impl.ReportEngineFactory$1.run(ReportEngineFactory.java:1) at java.security.AccessController.doPrivileged(Native Method) at org.eclipse.birt.report.engine.api.impl.ReportEngineFactory.createReportEngine(ReportEngineFactory.java:14) at com.tecnotree.mdx.product.utils.ExampleReport.main(ExampleReport.java:47) Please help me regarding this... my project deadline has been reached... Appreciate your Reply Thanks in Advance

    Read the article

  • Ruby gem installation error after OSX Yosemite and Xcode 6 installation

    - by Andres Trevino
    I tried installing a gem like I did before installing Yosemite, but now I'm getting an error: /Library/Ruby/Site/2.0.0/rubygems/ext/builder.rb:159:in `synchronize': ERROR: Failed to build gem native extension. (Gem::Ext::BuildError) ERROR: Failed to build gem native extension. deadlock; recursive locking This is the command I wrote: sudo gem install mysql2 This is the message it appears in the terminal: Gem files will remain installed in /Library/Ruby/Gems/2.0.0/gems/autotest-fsevent-0.2.9 for inspection. Results logged to /Library/Ruby/Gems/2.0.0/extensions/universal-darwin-14/2.0.0/autotest-fsevent-0.2.9/gem_make.out Gem files will remain installed in /Library/Ruby/Gems/2.0.0/gems/autotest-fsevent-0.2.9 for inspection. Results logged to /Library/Ruby/Gems/2.0.0/extensions/universal-darwin-14/2.0.0/autotest-fsevent-0.2.9/gem_make.out from /Library/Ruby/Site/2.0.0/rubygems/ext/builder.rb:159:in build_extension' from /Library/Ruby/Site/2.0.0/rubygems/ext/builder.rb:198:inblock in build_extensions' from /Library/Ruby/Site/2.0.0/rubygems/ext/builder.rb:195:in each' from /Library/Ruby/Site/2.0.0/rubygems/ext/builder.rb:195:inbuild_extensions' from /Library/Ruby/Site/2.0.0/rubygems/specification.rb:1436:in block in build_extensions' from /Library/Ruby/Site/2.0.0/rubygems/user_interaction.rb:45:inuse_ui' from /Library/Ruby/Site/2.0.0/rubygems/specification.rb:1434:in build_extensions' from /Library/Ruby/Site/2.0.0/rubygems/stub_specification.rb:60:inbuild_extensions' from /Library/Ruby/Site/2.0.0/rubygems/basic_specification.rb:56:in contains_requirable_file?' from /Library/Ruby/Site/2.0.0/rubygems/specification.rb:925:inblock in find_inactive_by_path' from /Library/Ruby/Site/2.0.0/rubygems/specification.rb:924:in each' from /Library/Ruby/Site/2.0.0/rubygems/specification.rb:924:infind' from /Library/Ruby/Site/2.0.0/rubygems/specification.rb:924:in find_inactive_by_path' from /Library/Ruby/Site/2.0.0/rubygems.rb:185:intry_activate' from /Library/Ruby/Site/2.0.0/rubygems/core_ext/kernel_require.rb:132:in rescue in require' from /Library/Ruby/Site/2.0.0/rubygems/core_ext/kernel_require.rb:144:inrequire' from /Library/Ruby/Site/2.0.0/rubygems.rb:601:in load_yaml' from /Library/Ruby/Site/2.0.0/rubygems/config_file.rb:328:inload_file' from /Library/Ruby/Site/2.0.0/rubygems/config_file.rb:197:in initialize' from /Library/Ruby/Site/2.0.0/rubygems.rb:289:innew' from /Library/Ruby/Site/2.0.0/rubygems.rb:289:in configuration' from /Library/Ruby/Site/2.0.0/rubygems/ext/builder.rb:63:inrun' from /Library/Ruby/Site/2.0.0/rubygems/ext/ext_conf_builder.rb:38:in block in build' from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/tempfile.rb:324:inopen' from /Library/Ruby/Site/2.0.0/rubygems/ext/ext_conf_builder.rb:17:in build' from /Library/Ruby/Site/2.0.0/rubygems/ext/builder.rb:161:inblock (2 levels) in build_extension' from /Library/Ruby/Site/2.0.0/rubygems/ext/builder.rb:160:in chdir' from /Library/Ruby/Site/2.0.0/rubygems/ext/builder.rb:160:inblock in build_extension' from /Library/Ruby/Site/2.0.0/rubygems/ext/builder.rb:159:in synchronize' from /Library/Ruby/Site/2.0.0/rubygems/ext/builder.rb:159:inbuild_extension' from /Library/Ruby/Site/2.0.0/rubygems/ext/builder.rb:198:in block in build_extensions' from /Library/Ruby/Site/2.0.0/rubygems/ext/builder.rb:195:ineach' from /Library/Ruby/Site/2.0.0/rubygems/ext/builder.rb:195:in build_extensions' from /Library/Ruby/Site/2.0.0/rubygems/specification.rb:1436:inblock in build_extensions' from /Library/Ruby/Site/2.0.0/rubygems/user_interaction.rb:45:in use_ui' from /Library/Ruby/Site/2.0.0/rubygems/specification.rb:1434:inbuild_extensions' from /Library/Ruby/Site/2.0.0/rubygems/stub_specification.rb:60:in build_extensions' from /Library/Ruby/Site/2.0.0/rubygems/basic_specification.rb:56:incontains_requirable_file?' from /Library/Ruby/Site/2.0.0/rubygems/specification.rb:925:in block in find_inactive_by_path' from /Library/Ruby/Site/2.0.0/rubygems/specification.rb:924:ineach' from /Library/Ruby/Site/2.0.0/rubygems/specification.rb:924:in find' from /Library/Ruby/Site/2.0.0/rubygems/specification.rb:924:infind_inactive_by_path' from /Library/Ruby/Site/2.0.0/rubygems.rb:185:in try_activate' from /Library/Ruby/Site/2.0.0/rubygems/core_ext/kernel_require.rb:132:inrescue in require' from /Library/Ruby/Site/2.0.0/rubygems/core_ext/kernel_require.rb:144:in require' from /Library/Ruby/Site/2.0.0/rubygems.rb:601:inload_yaml' from /Library/Ruby/Site/2.0.0/rubygems/config_file.rb:328:in load_file' from /Library/Ruby/Site/2.0.0/rubygems/config_file.rb:197:ininitialize' from /Library/Ruby/Site/2.0.0/rubygems/gem_runner.rb:74:in new' from /Library/Ruby/Site/2.0.0/rubygems/gem_runner.rb:74:indo_configuration' from /Library/Ruby/Site/2.0.0/rubygems/gem_runner.rb:39:in run' from /usr/bin/gem:21:in' I am using OSX 10.10 and Xcode 6 Beta. Do any of you guys have any idea as to what to do about this? Thanks in advance

    Read the article

  • SSRS 2005 Set SimplePageHeaders on the report instead of the server?

    - by Adam
    I have one report that does not export to excel friendly from SSRS 2005. I know I can use <Render> <Extension Name="EXCEL" Type="Microsoft.ReportingServices.Rendering.ExcelRenderer.ExcelRenderer,Microsoft.ReportingServices.ExcelRendering"> <Configuration> <DeviceInfo> <SimplePageHeaders>True</SimplePageHeaders> </DeviceInfo> </Configuration> </Extension> </Render> in the rsreportserver.config, but I am not the only person with reports on this machine. I also found that you can pass &rc:SimplePageHeaders=True in the url to export the report programatically. I tried adding the &rc:SimplePageHeaders=True to the end of the url when navigating to the report manager, but when I select excel from the dropdown and click export the headers are still exported. I even tried setting the rc:Command=Render and rc:Format=EXCEL in the url too without any luck. Is there a way to do what I am trying to do? note: I am wanting to render the report on the built in report manager and use the build in export to excel dropdown, not in an app or website.

    Read the article

  • How do I get Flex Builder to use the selected framework?

    - by Michael Prescott
    I'm attempting to create a Flex Project that will cause the Flash Player to cache the Flex framework. Flex Builder comes with Flex SDK 3.2.0.3958 and setting the Framework Linkage to use Runtime shared Library (RSL) under Project Properties - Flex Build Path will separate the framework from my main application and I see that my project's bin-debug directory contains framework_3.2.0.3958.swf and *.swz for distribution. Flex SDK 3.4 fixes a few bugs, so I configured it as another available sdk and set it as the default SDK. When I compile, I expect the bin-debug directory to contain framework_3.4.0.9271.swf and *.swz; however, Flex Builder is still writing framework_3.2.0.3958.swf and *.swz. How do I configure Flex Builder to package the correct framework files for Flash Player caching?

    Read the article

  • Java annotations for design patterns?

    - by Greg Mattes
    Is there a project that maintains annotations for patterns? For example, when I write a builder, I want to mark it with @Builder. Annotating in this way immediately provides a clear idea of what the code implements. Also, the Javadoc of the @Builder annotation can reference explanations of the builder pattern. Furthermore, navigating from the Javadoc of a builder implementation to @Builder Javadoc is made easy by annotating @Builder with @Documented. I've being slowing accumulating a small set of such annotations for patterns and idioms that I have in my code, but I'd like to leverage a more complete existing project if it exists. If there is no such project, maybe I can share what I have by spinning it off to a separate pattern/idiom annotation project. Update: I've created the Pattern Notes project in response to this discussion. Contributions welcome! Here is @Builder

    Read the article

  • Is VS 2010 SharePoint functionality good enough to replace WSP Builder?

    - by JL
    I have been using WSP builder up until now with VS 2008. I recently upgraded my IDE to VS 2010, and have heard that VS 2010 now includes functionality to work with MOSS directly. If you guys have had any experience with this new MOSS functionality and have come from a WSP builder background I would like to hear what you think. Just to add more focus to my question, I am not interested in ease of deployment at this stage, only the ability to wrap up a WSP package, so I can ship this off to production machines. So can VS 2010 out of the box create WSP packages from class library projects, like WSP Builder does?

    Read the article

  • Why is a report, in SSRS, when viewed in preview mode looks different when viewed in print layout mo

    - by Dean
    I have a report that was originally built in report builder and then imported into Visual Studio to add some other formating to it. The report has a header and a body section. In the body section there is a column that shows commission and the commission is subtotaled for each sales person. There is a page break for each sales person as well. When I preview the report, the subtotal appears as it should for each sales person, but when I either look at it in print layout mode or send it to the printer, the subtotal appears in the body section of the next page, which is the next sales person. Why is it behaving like this and how can I fix this? Thanks.

    Read the article

  • How to generate a report for particular XHTML tag/attributes ?

    - by jitendra
    I wan to check whole site's image's ALT text. I want to get a report of What is written in all text or ALT is defined or not from all images being used on whole site in every page. Is it possible to get report like this. after getting report i will put ALT or is ALT is already added but blank then will write description text. Other in a big site it will take huge time to go and check each page

    Read the article

  • Access 2007 can I capture the "clicked" field using an OnClick event on a report?

    - by Aaron Quince
    In Access 2007 I want to be able to click on a name field in a report and call a separate report with personal information about the person who's name was clicked to start the event. This would be as an alternative to creating a subreport or including the subreport fields in the main report in the interest of saving space. How do I reference the value of the clicked field for use in a query called with the OnClick event? Thanks for your help.

    Read the article

  • can not override showDialog in Activity tab

    - by hornetbzz
    Trying to downgrade my appl from android 2.2 (API 8) down to android 2.1 (API7), I'm facing some issues with dialog boxes. Based on this thread, I'm trying to catch these exceptions but can't override the showDialog method. I turned the Java compiler from 1.5 to 1.6 according to this answer to a similar issue, but no changes, Eclipse still returns : Cannot override the final method from Activity public class MyActivity extends Activity implements SeekBar.OnSeekBarChangeListener { // ... some stuffs @Override // here is the issue public void showDialog(int dialogId) { try { super.showDialog(dialogId); } catch (IllegalArgumentException e) { Log.e(ACTIVITY_TAG, "Error dialog"); } } @Override protected Dialog onCreateDialog(int id) { switch (id) { case DIALOG_ALERT: // Create out AlertDialog Builder builder = new AlertDialog.Builder(this); builder.setMessage(msg); builder.setCancelable(false); builder.setPositiveButton(GOTO_BOOK, new OkOnClickListener()); builder.setNegativeButton(STAY_HERE, new CancelOnClickListener()); AlertDialog dialog = builder.create(); dialog.show(); break; case DIALOG_ONCREATE: // Create out AlertDialog during the "onCreate" method (only "Ok" // button) Builder builder2 = new AlertDialog.Builder(getParent()); builder2.setMessage(msg); builder2.setCancelable(false); builder2.setPositiveButton(GO_BACK, new OkOnClickListener()); AlertDialog dialog2 = builder2.create(); dialog2.show(); break; } return super.onCreateDialog(id); } // ... some stuffs }

    Read the article

  • Using a remote PHP service with Flex (Flash Builder) AIR Application?

    - by Chrisc
    Hello, I'm developing a Adobe AIR application using Flash Builder 4. This app needs to access a remote PHP service which is being hosted on a remote web server. I am having troubles figuring out how to add a PHP data service which uses a remote service. I can add the PHP data service in Flash Builder as a service hosted on localhost, but given that this will not be feasible when the application is deployed, will not work. Does anyone know how to connect a Flash Builder (Flex) project to a remote PHP data service? Thanks, Chris

    Read the article

  • load report fail in crystal reports doesn't have solution.

    - by mr-developer
    hi all, i'm using c sharp and crystal reports in visual studio 2008 in my application. the problem is that there is a form that i have crystalreporviewer on, when i call the form from form1 by button click event, the form and the report loads perfect, but when i call the from from another from that i've called from form1, this exception appears "load report fail". how can i solve this problem. i've googled and i didn't find any solution. I think there is a difference between form1 and the other form which i call the form of the report from. this is the code of the report form load try { cryRpt.Load("..\\..\\CrystalReport1.rpt"); crystalReportViewer1.ReportSource = cryRpt; crystalReportViewer1.Refresh(); } catch(Exception ex) { MessageBox.Show(ex.Message); } thanks in advance for any replies

    Read the article

  • Are SQL Reporting Services Report Parameters deprecated in VS.NET 2010?

    - by Jason Kealey
    We use an Reporting Services inside an ASP.NET web application. (We have an *.rdlc which is presented to the ReportViewer web control in our page). Our ASPX page wires up a few report parameters in code: var parameters = new List<ReportParameter>(); parameters.Add(new ReportParameter("StoreAddress", InvoiceStoreAddress)); parameters.Add(new ReportParameter("LogoURL", InvoiceLogoURL)); parameters.Add(new ReportParameter("StoreName", InvoiceStoreName)); ReportViewer1.LocalReport.SetParameters(parameters); These are just general parameters that are passed to the report, instead of hooking it up to a data source. Recently, we upgraded to VS.NET 2010. We upgraded the *.rdlc to the newest version and also upgraded the ReportViewer control used by ASP.NET. Everything works as it did before. However, I now want to add a new report parameter to my *.rdlc. I typically right-clicked on the top left corner and clicked on "Report Parameters" to add it. With the new VS.NET, I cannot find this option anywhere - it is not even in the report properties. Where did it go? Are the deprecating this feature? How should I be passing some general parameters now?

    Read the article

  • Combining MDX and SQL datasets into one for a drill-through report??

    - by user259286
    Hello, Wondering if I could get some advice and direction on this following requirement: Need to Create a SSRS report with two datasets, one MDX and one SQL. I then need to join those two datasets to create a third dataset which is to be used by a drill though report. How can I combine those datasets into one and use that as a Dataset for a drill-through report? Thanks!!

    Read the article

  • Anyone know of a Java reporting tools which has a web based visual report designer?

    - by kwyjibo
    We're currently evaluating different Java reporting engines, and having a web-based ad-hoc report designer is a requirement. We don't need anything too fancy, but we need users to be able to define a report with columns X, grouped by Y, sorted by Z, etc... We've found that many of the open source tools do have graphical report designers, but the designers are typically not web based. (For example, iReport from JasperReports seems to be an application, not a web tool) Can anyone recommend a reporting tool which meets this web-based requirement?

    Read the article

  • Using Sandcastle to build code contracts documentation

    - by DigiMortal
    In my last posting about code contracts I showed how code contracts are documented in XML-documents. In this posting I will show you how to get code contracts documented with Sandcastle and Sandcastle Help File Builder. Before we start, let’s download Sandcastle tools we need: Sandcastle Sandcastle Help File Builder Install Sandcastle first and then Sandcastle Help File Builder. Because we are generating only HTML based documentation we upload to server we don’t need any other tools. Of course, we need Cassini or IIS, but I expect it to be already there in your machine. Open your project and turn on XML-documentation for project and contracts. Now let’s run Sandcastle Help File Builder. We have to create new project and add our Visual Studio solution to this project. Now set the HelpFileFormat parameter value to be Website and let builder build the help. You have to wait about two or three minutes until help is ready. Take a look at your documentation that Sandcastle generated – you see not much information there about code contracts and their rules. Enabling code contracts documentation Now let’s include code contracts to documentation. Follow these steps: Open Sandcastle folder and make copy of vs2005 folder. Open CodeContracts folder (c:\program files\microsoft\contracts\) and unzip the archive from sandcastle folder. Copy all unzipped files to Sandcastle folder. Create (yes, create new) and build your Sandcastle Help File Builder documentation project again. Open help. In my case I see something like this now. As you can see then contracts are documented pretty well. We can easily turn on code contracts XML-documentation generation and all our contracts are documented automatically. To get documentation work we had to use Sandcastle help file fixes that are installed with code contracts and if we had previously Sandcastle Help File Builder project we had to create it from start to get new rules accepted. Once the documentation support for contracts works we have to do nothing more to get contracts documented.

    Read the article

  • Dynamic Layout in BI Publisher

    - by Manoj Madhusoodanan
    This blog tells about how to set dynamic layout of a BI Publisher report.Lets take a simple business scenario.If user wants to view the output in either PDF or EXCEL.Two ways we can achieve this.  1) If the output type is not a program parameter the we can choose the layout type at the time of submission in the SRS window. 2) If the report output type is a parameter we need to choose the layout at the time of submission of the request using FND_REQUEST.ADD_LAYOUT. Here I am discussing the second approach.Following components I have created for this scenario. 1) XXCUST - Sample Report : This program actually generates the XML data. It is linked with a RTF template.Note: At the time of creating this program you can uncheck Use in SRS to prevent users from submitting from SRS window.Because we are submitting this program from another concurrent program.Also is not required to add it to request group.2) XXCUST - Report Wrapper : This program calls XXCUST - Sample Report and exposed to user through SRS.3) SAMPLE_REPORT_WRAPPER : Executable which calls xxcust_sample_rep.main4) SAMPLE_REPORT_EXE : Executable which calls xxcust_sample_rep.report_main5) XXCUST - Sample Report Data Definition : Data Definition linked to XXCUST - Sample Report6) XXCUST - Sample Report Template : Template linked to XXCUST - Sample Report Data Definition 7) Package 8) RTF

    Read the article

  • Pre-built UI components for displaying SSRS Local Mode Parameters

    - by namenlos
    BACKGROUND Am writing a WinForm app that uses the SSRS Report Viewer control to render reports in local mode - there is no SSRS server involved at all I can successully create and execute reports in local mode What I want to do is add Parameters to the report THE PROBLEM When the Report Viewer control executes a report in local mode it does not provide any UI that allows the user to enter values for parameters defined in the report This is in contrast to to when the Report Viewer control is running a server report - parameters are shown. MY QUESTION Are there pre-built components or even sample code I can use that would provide a reasonble parameter user experience for this scenario (scenario = SSRS + Report Viewer Control + Local Mode)? Yes, I could write this UI code myself - what I am looking for is existing code to avoid having to implement this UI because I'd rather spend my time making the content of the report work well NOTES Switching to another reporting engine besides SSRS is not an option. Switching to server side reports is not an option.

    Read the article

  • Memento with optional state?

    - by Korey Hinton
    EDIT: As pointed out by Steve Evers and pdr, I am not correctly implementing the Memento pattern, my design is actually State pattern. Menu Program I built a console-based menu program with multiple levels that selects a particular test to run. Each level more precisely describes the operation. At any level you can type back to go back one level (memento). Level 1: Server Type? [1] Server A [2] Server B Level 2: Server environment? [1] test [2] production Level 3: Test type? [1] load [2] unit Level 4: Data Collection? [1] Legal docs [2] Corporate docs Level 4.5 (optional): Load Test Type [2] Multi TIF [2] Single PDF Level 5: Command Type? [1] Move [2] Copy [3] Remove [4] Custom Level 6: Enter a keyword [setup, cleanup, run] Design States PROBLEM: Right now the STATES enum is the determining factor as to what state is BACK and what state is NEXT yet it knows nothing about what the current memento state is. Has anyone experienced a similar issue and found an effective way to handle mementos with optional state? static enum STATES { SERVER, ENVIRONMENT, TEST_TYPE, COLLECTION, COMMAND_TYPE, KEYWORD, FINISHED } Possible Solution (Not-flexible) In reference to my code below, every case statement in the Menu class could check the state of currentMemo and then set the STATE (enum) accordingly to pass to the Builder. However, this doesn't seem flexible very flexible to change and I'm struggling to see an effective way refactor the design. class Menu extends StateConscious { private State state; private Scanner reader; private ServerUtils utility; Menu() { state = new State(); reader = new Scanner(System.in); utility = new ServerUtils(); } // Recurring menu logic public void startPromptingLoop() { List<State> states = new ArrayList<>(); states.add(new State()); boolean redoInput = false; boolean userIsDone = false; while (true) { // get Memento from last loop Memento currentMemento = states.get(states.size() - 1) .saveMemento(); if (currentMemento == null) currentMemento = new Memento.Builder(0).build(); if (!redoInput) System.out.println(currentMemento.prompt); redoInput = false; // prepare Memento for next loop Memento nextMemento = null; STATES state = STATES.values()[states.size() - 1]; // get user input String selection = reader.nextLine(); switch (selection) { case "exit": reader.close(); return; // only escape case "quit": nextMemento = new Memento.Builder(first(), currentMemento, selection).build(); states.clear(); break; case "back": nextMemento = new Memento.Builder(previous(state), currentMemento, selection).build(); if (states.size() <= 1) { states.remove(0); } else { states.remove(states.size() - 1); states.remove(states.size() - 1); } break; case "1": nextMemento = new Memento.Builder(next(state), currentMemento, selection).build(); break; case "2": nextMemento = new Memento.Builder(next(state), currentMemento, selection).build(); break; case "3": nextMemento = new Memento.Builder(next(state), currentMemento, selection).build(); break; case "4": nextMemento = new Memento.Builder(next(state), currentMemento, selection).build(); break; default: if (state.equals(STATES.CATEGORY)) { String command = selection; System.out.println("Executing " + command + " command on: " + currentMemento.type + " " + currentMemento.environment); utility.executeCommand(currentMemento.nickname, command); userIsDone = true; states.clear(); nextMemento = new Memento.Builder(first(), currentMemento, selection).build(); } else if (state.equals(STATES.KEYWORD)) { nextMemento = new Memento.Builder(next(state), currentMemento, selection).build(); states.clear(); nextMemento = new Memento.Builder(first(), currentMemento, selection).build(); } else { redoInput = true; System.out.println("give it another try"); continue; } break; } if (userIsDone) { // start the recurring menu over from the beginning for (int i = 0; i < states.size(); i++) { if (i != 0) { states.remove(i); // remove all except first } } reader = new Scanner(System.in); this.state = new State(); userIsDone = false; } if (!redoInput) { this.state.restoreMemento(nextMemento); states.add(this.state); } } } }

    Read the article

< Previous Page | 58 59 60 61 62 63 64 65 66 67 68 69  | Next Page >