Friday, 16 June 2017

Execute Command from View/Editor in Eclipse RCP

Execute Command from View/Editor in Eclipse RCP

All Commands will be registered to IHandlerService. If we get the IHandlerService instance then we can call the desired command and then execute it.

// Get the Instance of IHandlerService from View
// Alternate way of getting site object is this also:
// PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().getActivePart().getSite()
// But we prefer  following so we get the appropriate IWorkbenchPartSite object.
IHandlerService service = (IHandlerService) getSite().getService(IHandlerService.class); 
try {
service.executeCommand("ResumeParser.commands.sampleCommand", null); 
} catch (ExecutionException e1) { 
e1.printStackTrace(); 
} catch (NotDefinedException e1) { 
e1.printStackTrace(); 
} catch (NotEnabledException e1) { 
e1.printStackTrace(); 
} catch (NotHandledException e1) { 
e1.printStackTrace(); 
}


Sunday, 11 June 2017

Fie Dialog and Folder Dialog in Eclipse RCP


Fie Dialog and Folder Dialog in Eclipse RCP

File Dialog in Eclipse:
- This will only allow you to select the files in the Dialog Box
FileDialog fileDialog = new FileDialog(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell()); // Following line is Optional if you want to, enable filter for specific files. //fileDialog.setFilterExtensions(new String[] {"*.txt","*.csv"}); String filePath = fileDialog.open(); System.out.println(filePath);


Folder Dialog in Eclipse:
- This will allow you to select the folder in the Dialog box.
DirectoryDialog directoryDialog = new DirectoryDialog(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell()); // Optional - if you want to open specific path //directoryDialog.setFilterPath("/home/hv185014/junk/"); String directoryPath = directoryDialog.open(); System.out.println(directoryPath);

Thursday, 6 April 2017

Builder Design Pattern - Java

Builder Design Pattern - Java

When the construction of the class contains a large number of argument then this Design Pattern is preferred.

Builder Pattern, as the name suggest, it helps to reduce the complexity in Building Java Object.


public class Person { private String firstname; private String lastname; private String address; private int age; private String city; private String state; public Person(String firstname, String lastname, String address, int age, String city, String state) { super(); this.firstname = firstname; this.lastname = lastname; this.address = address; this.age = age; this.city = city; this.state = state; } }

In the above example, you can see, that the construction of the Person class has 6 arguments and few of them can be optional.

So we can create a new PersonBuilder class which will help to create the Object of the Person class.


public class PersonBuilder { private String firstname; private String lastname; private String address; private int age; private String city; private String state; public PersonBuilder() { } public PersonBuilder setFirstname(String firstname) { this.firstname = firstname; return this; } public PersonBuilder setLastname(String lastname) { this.lastname = lastname; return this; } public PersonBuilder setAddress(String address) { this.address = address; return this; } public PersonBuilder setAge(int age) { this.age = age; return this; } public PersonBuilder setCity(String city) { this.city = city; return this; } public PersonBuilder setState(String state) { this.state = state; return this; } public Person build() { return new Person(firstname, lastname, address, age, city, state); } }

So, now the Person class can be created as below :

If Person is with address and name then it can created as following new PersonBuilder("firstname", "lastname").setAddress("my address").build();

If Person is with state and name then it can created as following new PersonBuilder("firstname", "lastname").setState("guj").build();